在线编程:幸运数--前奏--寻找质数

如果一个数各个数位上的数字之和是质数,并且各个数位上的数字的平方和也是质数,则称它为幸运数。 给定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;
}




这道题实在不会做啊...求大神思路

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值