洛谷 P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib
P1218 [USACO1.5]特殊的質(zhì)數(shù)肋骨 Superprime Rib
題目描述
農(nóng)民約翰的母??偸钱a(chǎn)生最好的肋骨。你能通過農(nóng)民約翰和美國農(nóng)業(yè)部標(biāo)記在每根肋骨上的數(shù)字認(rèn)出它們。農(nóng)民約翰確定他賣給買方的是真正的質(zhì)數(shù)肋骨,是因?yàn)閺挠疫呴_始切下肋骨,每次還剩下的肋骨上的數(shù)字都組成一個(gè)質(zhì)數(shù),舉例來說: 7 3 3 1 全部肋骨上的數(shù)字 7331是質(zhì)數(shù);三根肋骨 733是質(zhì)數(shù);二根肋骨 73 是質(zhì)數(shù);當(dāng)然,最后一根肋骨 7 也是質(zhì)數(shù)。 7331 被叫做長度 4 的特殊質(zhì)數(shù)。寫一個(gè)程序?qū)o定的肋骨的數(shù)目 N (1<=N<=8),求出所有的特殊質(zhì)數(shù)。數(shù)字1不被看作一個(gè)質(zhì)數(shù)。
輸入輸出格式
輸入格式:?
單獨(dú)的一行包含N。
?
輸出格式:?
按順序輸出長度為 N 的特殊質(zhì)數(shù),每行一個(gè)。
?
輸入輸出樣例
輸入樣例#1:?復(fù)制4
輸出樣例#1:?復(fù)制 2333
2339
2393
2399
2939
3119
3137
3733
3739
3793
3797
5939
7193
7331
7333
7393
說明
題目翻譯來自NOCOW。
USACO Training Section 1.5
思路:搜索。
#include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int a[1000],n; bool judge(int x){int k=sqrt(x);if(x==1) return 0;else if(x==2||x==3) return 1;else for(int i=2;i<=k;i++)if(x%i==0) return 0;return 1; } void dfs(int step){ if(step==n){cout<<a[step]<<endl;return ;} for(int i=1;i<=9;i++)if(judge(10*a[step]+i)){a[step+1]=10*a[step]+i;dfs(step+1);} } int main(){scanf("%d",&n);dfs(0); }
?
轉(zhuǎn)載于:https://www.cnblogs.com/cangT-Tlan/p/7896877.html
總結(jié)
以上是生活随笔為你收集整理的洛谷 P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么IE打开之后的网页跟设置的主页不一
- 下一篇: Linux踢出其他正在SSH登陆用户