1、判断可逆素数
若将某一素数的各位数字的顺序颠倒后得到的数仍是素数,则此素数称为可逆素数。编写一个判断某数是否可逆素数的函数,在主函数中输入一个整数,再调用此函数进行判断。
#include<stdio.h>
#include<math.h>
int a(int n)
{
int i,s=0;
int e=0;
for(i=2;i<n;i++)
if(n%i==0)
s+=1;
while(n!=0)
{
e=e*10;
e=e+n%10;
n=n/10;
}
for(i=2;i<e;i++)
if(e%i==0)
s+=1;
return s;
}
int main()
{
int x,s;
scanf("%d",&x);
s=a(x);
if(s==0&&x>2)
printf("yes");
else if(x>2)
printf("no");
if(x==2)
printf("yes");
return 0;
}
2、回文数
所谓"回文数"是指具有如下性质的整数:一个整数,当它的各位数字逆序排列,形成的整数与原整数相同,这样的数称为回文数。例如,素数11,373,其各位数字对换位置后仍然为11,373,因此这两个整数均为回文数。编写函数int loop(int x),判断一个整数是否为回文数,如果x是回文数则返回1,否则返回0。编写程序loop.c,接收控制台输入的两个整数a,b。调用loop函数输出a到b之间(包括a和b)的所有回文数。
#include<stdio.h>
int loop(int x)
{
int s,y=0;
s=x;
while(s>0)
{
y=y*10;
y=y+s%10;
s=s/10;
}
if(y==x)
{
return 1;
}
else
{
return 0;
}
}
int main()
{
int a,b,i;
scanf("%d %d",&a,&b);
for(i=a;i<=b;i++)
{
if(loop(i)==1)
printf("%d\n",i);
}
return 0;
}