假设我们有一个数字n,我们必须检查n是否为原始质数。当数字是形式为pN#+1或pN#– 1的质数时,该数字被称为本质质数,其中pN#表示pN的质数,使得前N个质数为乘积。
因此,如果输入像29,则输出将为True,因为29是形式为pN-1的Primorial素数,如果N = 3,Primorial是2 * 3 * 5 = 30且30-1 = 29。
为了解决这个问题,我们将遵循以下步骤-最大:= 100000
prime:=大小为MAX并填充True的列表
arr:=一个新列表
定义一个功能SieveOfEratosthenes()。这将需要
对于pri范围2到int((MAX)的平方根)+ 1,对于pri * 2至MAX范围内的i,按pri的每一步进行更新,执行
prime [i]:= False
如果prime [pri]与True相同,则
对于pri在2到MAX范围内,请执行在arr的末尾插入pri
如果prime [pri]不为零,则
从主要方法中,执行以下操作-
如果prime [n]为零,则返回False
产品:= 1,i:= 0
当积
产品:=产品* arr [i]
如果乘积+1与n相同或乘积-1与n相同,则
我:=我+ 1
返回False
示例