求帮忙做这个题目

C语言 码拜 9年前 (2016-04-10) 847次浏览
已知某一整数,求各位数字均为素数,而且各位数字之和也为素数,例如232,2+3+2=7也是素数。用c语言这样做为什么错了
#include<stdio.h>
fun(int n)
{
int k,r;
for(k=1;k<n-1;k++)
{r=n%k;
if(r==0) break;}
if(k==n)
return 1;
else
return 0;
}
void main()
{
int i,j,k,sum;
for(i=1;i<=1000;i++)
{
k=i;
sum=0;
while(k)
{
j=k%10;
if(fun(j)==0)break;
sum+=j;
k/=10;
}
if(fun(sum)&&k==0)
printf(“%d\n”,k);
}

}

解决方案

200

1.你的fun函数写的有问题,k=1应该是k=2,k<n-1应该是k<=n-1
2.main函数里printf的应该是i,而不是k

#include<stdio.h>
int fun(int n)
{
	int k,r;
	for(k=2;k<=n-1;k++)
	{
		r=n%k;
	if(r==0)
		break;
	}
	if(k==n)
		return 1;
	else
		return 0;
}
void main()
{ 
	int i,j,k,sum;
	for(i=1;i<=1000;i++)
	{ 
		k=i;
		sum=0;
		while(k)
		{
			j=k%10;
			if(fun(j)==0)break;
			sum+=j;
			k/=10;
		}
		if(fun(sum)&&k==0)
			printf("%d\n",i);
	}
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求帮忙做这个题目
喜欢 (0)
[1034331897@qq.com]
分享 (0)