我有一个与Sophie Germain相关算法相关的问题,我很想知道。
问题如下:
素数p
定义为'Sophie Germain prime',如果2p+1
也是素数。例如,23是Sophie Germain素数,因为47是素数。 47不是苏菲日耳曼素数,因为95不是素数。
1)描述一个获得素数p
并返回a1, ... , am
的算法,该算法强制执行以下操作:
a。 a1 = p
b。 ai + 1 = 2ai + 1(每1 <= i <= m-1)
c。 ai是Sophie Germain prime(对于每个1&lt; = i&lt; = m)但是2am + 1不是Sophie Germain prime。
例如,如果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
不确定如何解决这个问题。 有任何想法吗?
答案 0 :(得分:0)
这一行错了:
1.2. p <- 2p+1
它应该缓慢地超过每个整数,如p&lt; -p + 1
你不想从p = 2到2p + 1 = 5而没有访问3这是一个主要的
并添加while条件,如p&lt; = m,以限制无限循环 并且在循环内部使用,如果p是素数,那么如果2p + 1是素数打印p