如果一个数各个数位上的数字之和是质数,并且各个数位上的数字的平方和也是质数,则称它为幸运数。 给定x,y,求x,y之间( 包含x,y,即闭区间[x,y])有多少个幸运数。 例如1到20之间有4个幸运数,它们是11,12,14,16,像因为1+1 = 2是质数,1^2 + 1^2 = 2也是质数等等。 给定函数原型,其中1<=x<=y<=1000000000,请完成函数,实现上述功能。
#include <stdio.h>
int main(int argc, char const *argv[])
{
printf("%d\n",cal_ts(2,20) );
return 0;
}
int cal_ts(int start,int end)
{
int i=0,k=0,count=0,flag=0;
long int array[1000000];
for ( i = start; i < end; ++i)
{
flag=1;
if (i==1)
{
return 0;
}
for (k = 0; k < count; ++k)
{
/* code */
if ((array[k]<i)&&((i%array[k])==0))
{
/* code */
flag=0;
break;
}
}
if (flag==0)
{
continue;
}
for (k=2; k < i; ++k)
{
/* code */
if (i%k==0)
{
/* code */
flag=0;
break;
}
}
if (flag==1)
{
/* code */
array[count++]=i;
}
}
return count;
}
这道题实在不会做啊...求大神思路