C语⾔判别m和n之间的回⽂素数(数组)
问题:
求m~n(m≥10,n≤10000)之间的回⽂素数,所谓回⽂素数,即这个数既是回⽂⼜是素数。程序⾸先要判断某个数是否是回⽂,再判断是否是素数。如果是回⽂素数,则保存于数组中,并按6位域宽输出,每⾏输出5个。
输⼊:
m n
输出:
m~n之间的回⽂素数,每个数占6位,每⾏限输出5个。
例如:
代码:
#include <stdio.h>
#include <math.h>
void main()
{
int m,n,i,j,k,sum;
int a[1000],t=1;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
int s1=1,s2=1;c++判断素数
sum=0;j=i;
while(j>0)//判断回⽂
{
sum=sum*10+j%10;
j=j/10;
}
if(sum==i)
{
s1=0;
}
for(k=2;k<=sqrt(i);k++)//判断素数
{
if(i%k==0)
s2=0;
}
if(s1==0 && s2==1)
{
a[t++]=i;
}
}
for(i=1;i<t;i++)
{
if(i%5!=0)
printf("%6d",a[i]);
else
printf("%6d\n",a[i]);
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。