绝对素数

绝对素数是指本身是素数,其逆序数也是素数的数。例如:10321与12301是绝对素数。编写一个程序,求出所有m~n(m≥11,n≤1000)之间的绝对素数。程序要求实现两个自定义函数,prime(n)用于判断一个整数n是否是素数,是则返回1,否则返回0;inv(n)用于对整数n进行逆序,函数返回逆序后的整数。主函数通过调用上述两个自定义函数实现绝对素数的判断和输出。

输入
m n

输出
m~n之间的绝对素数,每个输出整数占5位,每行输出10个

样例输入
11 1000
样例输出
11 13 17 31 37 71 73 79 97 101
107 113 131 149 151 157 167 179 181 191
199 311 313 337 347 353 359 373 383 389
701 709 727 733 739 743 751 757 761 769
787 797 907 919 929 937 941 953 967 971
983 991
提示

#include <stdio.h>
#include <string.h>
int prime(int);
int inv(int);
int main(){
int m,n;
// printf("test\n");
while((scanf("%d%d",&m,&n) != EOF))
{
int cnt = 0;
for(int i = m ; i <= n; i++)
{
if(prime(i) && prime(inv(i)))/* 及时检查下传入的参数是否正当(尤其使多个函数有共同的参数(这错误会有连锁效应) */
{
//cnt++;
printf("%5d",i);
if(++cnt%10 == 0) printf("\n");
}
}
//printf()
}
return 0;
}
int prime(int n)
{
if(n == 1 || n == 0)
{
return 0;
}
/* 判断4及之后的自然数 4之前默认使prime*/
for(int i = 2;i*i < n+1;i++)
{
if(n%i == 0)
{
return 0;
}
}
/* 回过头来看1,2,3的情况 */
return n;
}
int inv(int n)
{
int inv = 0;
for(;n > 0;)
{
inv = (inv) * 10 + n % 10;
n /= 10;
}
return inv;
}
posted @   xuchaoxin1375  阅读(34)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2022-10-20 PT_离散型随机变量下的分布:几何/超几何/幂律
点击右上角即可分享
微信分享提示