我有一个关于索菲·杰曼相关算法的问题,我很想知道。
Q是这样的:如果素数p
也是素数,则它被定义为'Sophie素数‘。例如,23是苏菲热尔曼素数,因为47是素数。47不是索菲杰曼素数,因为95不是素数。
1)描述一个获取素数p
并返回强制执行以下操作的a1, ... , am
的算法:
a. a1 =p
b. ai+1 = 2ai +1(每1 <= i <= m-1)
c. ai是苏菲日耳曼素数(每1 <= i <= m),但2am +1不是苏菲日耳曼素数。
例如,如果是p=2,输出将是2, 5, 11, 23
。
我考虑了下面的算法。
CheckGermain (p)
1. While p is prime (according to AKS algorithm) **and** 2p+1 is prime
1.1. Print p
1.2. p <- 2p+1
你认为如何?
2)描述一个获得2个自然数a,b (a < b)的算法,并检查在a.b之间是否有一个苏菲日耳曼素数。
不知道该怎么解决这个问题。有什么想法吗?
发布于 2017-04-14 21:19:21
这句话是错的:
1.2. p <- 2p+1
它应该缓慢地遍历每一个整数,如p <- p+1
如果不访问3(素数),您不会想从p=2转到2p+1=5
并添加一个while条件(如和p<=m )来限制无限循环,并在循环中使用如果p是素数而不是2p+1是素数打印p的话。
https://stackoverflow.com/questions/43419076
复制相似问题