将不超过1993的所有素数从小到大排成一行,第二行每个数等于上面相邻两数的差,编程求出,第二行中是否存在连续整数,他们的和恰好为1898,。
这道题并不难,我想写的原因有两个:
一:先找规律
sum=m[k]+m[k+1]+...+m[j]
=(n[k+1]-n[k])+(n[k+2]-n[k+1])+....
=n[j+1]-n[k]
for(j--;number[j]>1898;j--)
{for(i=0;number[j]-number[i]>1898;i++)
if(number[j]-number[i]==1898)
printf();
}
二:差值为1898,素数2和其他素数的差值肯定是奇数,所以直接从3开始!!!
做题之前一定要先思考,可以减少不必要的运算,提高效率