问答题 [说明]
对于数学上一个猜想:任何自然数平方的36倍等于两对孪生素数的和。初始的情形如下:
12×36=(5+7)+(11+13)
22×36=(29+31)+(41+43)
32×36=(11+13)+(149+151)
再往下,N取4,5,6,时,只要N不太大,也都可以找到N(上标)2×36等于两对孪生素数的和。但是当N是一个任意的正整数时,证明N2×36总是等于两对孪生素数的和,这还是一个目前尚未解决的问题。甚至当考察的数较大时,找出一组符合条件的两对孪生素数都是计算量相当大的工作。每尝试一次,都要作4次是否是素数的判断,要作许多次的尝试,才可能找到一组解。下面流程图设计了一种优化算法来对这个猜想进行验证。仔细阅读流程图8-11,完成程序部分。


【正确答案】
【答案解析】(1)is_prime && (p/primes[i]>=primes[i]); (2)primes[prime_index]=p;++prime_index; (3)primes[i]<=s/4 && i<=prime_index-1 (4)p1=primes[i];p2=primes[i+1]; (5) p3==primes[j]&&p4==primes [j+1] [解析] 本题属于流程图题。该算法完成了对一数学猜想的验证。本题流程图与代码对应得很好,难度不大,做题时一定要结合流程图。