USACO:1.5.3 Superprime Rib 特殊的质数肋骨
2016-03-02 20:17
309 查看
http://218.5.5.242:9018/JudgeOnline/problem.php?id=1262
农民约翰母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说:7 3 3 1全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数。7331 被叫做长度 4 的特殊质数。
写一个程序对给定的肋骨的数目 N (1<=N<=8),求出所有的特殊质数。数字1不被看作一个质数。
农民约翰母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说:7 3 3 1全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 73 是质数;当然,最后一根肋骨 7 也是质数。7331 被叫做长度 4 的特殊质数。
写一个程序对给定的肋骨的数目 N (1<=N<=8),求出所有的特殊质数。数字1不被看作一个质数。
#include <stdio.h> #include <math.h> const int prime[]={0,2,3,5,7}; const int other[]={0,1,3,7,9}; short int n; _Bool is_prime(int x){ for(int i=2;i<=sqrt(x);i++) if(!(x%i)) return 0; return 1; } void search(int num,int step){ if(step==n){ printf("%d\n",num); return; } int Num; for(int i=1;i<=4;i++){ Num=num*10+other[i]; if(is_prime(Num)) search(Num,step+1); } } int main(){ scanf("%d",&n); if(n==1){ printf("2\n3\n5\n7\n"); return 0; } for(int i=1;i<=4;i++) search(prime[i],1); return 0; }
相关文章推荐
- Android开发笔记----安卓手机端抓包
- 蓝桥杯六6加法变乘法
- 假设编程语言是女人
- Android 网络通信框架Volley简介(Google IO 2013)
- zabbix_直接使用80端口根目录访问
- Android基于回调的事件处理
- 用kaptcha生成验证码
- poj3207 Ikki's Story IV - Panda's Trick 2011-12-26
- poj3678 Katu Puzzle 2011-12-26
- hdu不要62
- [置顶] PullToRefreshListView总结
- elasticsearch-dsl 2.0.0 介绍
- 【慕课笔记】2-1 进制转换
- oracle trunc函数
- bzoj1096: [ZJOI2007]仓库建设 2011-12-26
- 关于某些时候notifyDataSetChanged不运行的问题
- 公有继承 保护继承 私有继承
- linux线程
- 数组的循环移位
- hdoj 5505 GT and numbers