假设三个素数是a、b、c,你的要求是abc+1整除a+1且abc-1整除a-1。
abc+1 = (a+1)bc-bc+1 => bc-1整除a+1
abc-1 = (a-1)bc+bc-1 => bc-1整除a-1
一般a是奇数,a+1 = 2t+2,a-1 = 2t,那么bc-1同时整除2(t+1)和2t,所以bc-1 = 2kt(t+1)。
所以你应该第一层循环a遍历列表中所有质数,那么t就可以确定。之后再用bc-1 = 2kt(t+1),b遍历比sqrt(2kt(t+1)+1)大的质数,再来判断有没有c满足条件。这么应该比你三层循环要快点。
【 在 feng321 的大作中提到: 】
: 我有1029个不相同的素数,然后 要从中取出若干个素数(无重复),把它们乘起来构成一个大整数 N, 要求N的每一个素因子 p 都满足条件
: p-1 整除 N-1,且 p+1 整除 N+1
: (只要计算奇数个素因子的乘积,再验算就行了)
: ...................
--
FROM 166.113.80.*