费尔马二平方素数
题目:
除了2这个特别的素数外,所有的素数都可以分成两类:第一类是被4除余
1的素数,如5,13,17,29,37,41;第二类是被4除余3的素数,如3,7,
11,19,23,31。第一类素数都能表示成两个整数的平方和(第二类不能),
例如:5=1*1+2*2、13=2*2+3*3、17=1*1+4*4、29=2*2+5*5...这就是著名的
费尔马“二平方”定理。有趣的是:上述等式右侧的数有的又恰恰是两个素
数的平方,如13、29,我们就把这样的素数叫作费尔马“二平方”素数,即
是如果一个素数能够表示成两个素数的平方和的形式,例如:F=X*X+Y*Y
(1),其中F、X、Y都是素数,它就是费尔马“二平方”素数。
请求出并打印40亿以内的所有的费尔马“二平方”素数。
我已经写了一个,要6秒左右,麻烦高手们想一个算法使运行时间小于1秒。