C语言:从给出的数据中统计出既是回文数又是素数的数
1.如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如6886就是一个回文数,从给出的数据中统计出既是回文数又是素数的数(<109)。样例:输入:7121011...
1.如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如6886就是一个回文数,从给出的数据中统计出既是回文数又是素数的数(<10 9 )。 样例: 输入: 7 12 10 11 121 1331 10301 输出: 3 找素数(就是质数)我会,回文数问题也不大,关键是:这几个数据怎么输入?用数组循环输入的话需要知道个数,可是题目中不知道,能帮我解决这个问题吗?谢谢了。 最好给出代码
展开
展开全部
#include <stdio.h>
int hw(int n)
{int y=0,n1;
n1=n;
for(;n;n/=10)y=y*10+n%10;
return y==n1;
}
int prime(int n)
{int i;
for(i=2;i*i<=n;i++)
if(n%i==0)return 0;
return n>1;
}
int main()
{int n,c=' ',num=0;
scanf("%d%c",&n,&c);
while(1)
{if(hw(n)&&prime(n))
num++;
if(c=='\n')break;
scanf("%d%c",&n,&c);
}
printf("%d\n",num);
return 0;
}
展开全部
int a; int count=0; while(scanf("%d",&a)!=EOF)/*读到文件尾结束,以空格或回车分开,读一个执行一次循环*/ { 判断回文,同时是素数的话count++; }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include"stdio.h" int s[100]; main() { int i; for(i=0;;i++) { scanf("%d",&s[i]); if(s[i]==0) break; else continue; } for(i=0;s[i]!=0;i++) printf("%d ",s[i]); } 以输入数字0为输入结束标志
采纳哦
采纳哦
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询