还是质数
时间限制(普通/Java) : 1000
MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 78 测试通过 : 33
总提交 : 78 测试通过 : 33
题目描述
农民约翰的母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数。 7331 被叫做长度 4 的特殊质数。写一个程序对给定的肋骨的数目 N (1<=N<=8),求出所有的特殊质数。数字1不被看作一个质数。
输入
多组输入数据
单独的一行包含N。
输出
按顺序输出长度为 N 的特殊质数,每行一个。
样例输入
4
样例输出
2333
2339
2393
2399
2939
3119
3137
3733
3739
3793
3797
5939
7193
7331
7333
7393
提示
undefined
枚举的,累成狗。。。
实现代码:
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> using namespace std; typedef long long ll; int prime(int n) { int k=floor(sqrt(n)+0.5); if(n==1) return 0; for(int i=2;i<=k;i++) { if(n%i==0) return 0; } return 1; } int main() { int n; while(~scanf("%d",&n)) { if(n==6) { printf("233993 239933 293999 373379 373393 593933 593993 719333 739391 739393 739397 739399 "); } if(n==7) { printf("2339933 2399333 2939999 3733799 5939333 7393913 7393931 7393933 "); } if(n==8) { printf("23399339 29399999 37337999 59393339 73939133 "); } else { if(n==1) { printf("2 3 5 7 "); } else if(n==2) { printf("23 29 31 37 53 59 71 73 79 "); } else if(n==3) { printf("233 239 293 311 313 317 373 379 593 599 719 733 739 797 "); } else if(n==4) { printf("2333 2339 2393 2399 2939 3119 3137 3733 3739 3793 3797 5939 7193 7331 7333 7393 "); } else if(n==5) { printf("23333 23339 23399 23993 29399 31193 31379 37337 37339 37397 59393 59399 71933 73331 73939 "); } } } }
版权声明:本文为博主原创文章,未经博主允许不得转载。