USACO-Section1.5 sprime[深搜]

xiaoxiao2021-02-28  137

题目大意:

,举例来说: 7331是质数; 733是质数; 73 是质数; 7 也是质数。 7331 被叫做长度 4 的特殊质数。 写一个程序对给定的数目 N (1<=N<=8),求出所有的特殊质数。 数字1不被看作一个质数。

样例输入:

4

样例输出:

2333 2339 2393 2399 2939 3119 3137 3733 3739 3793 3797 5939 7193 7331 7333 7393

题解:

用深搜,一位一位的判断。长度够了就输出,可以控制大小。

C++ /* ID:mujinui1 PROG:sprime LANG:C++ */ #include<fstream> #include<cmath> using namespace std; ifstream fin ("sprime.in"); ofstream fout ("sprime.out"); int n; bool check(int d) { int i; for (i=2;i<=(int)sqrt(d);i++) if (d%i==0) return true; return false; } void dfs(int s,int k) { int i; if (check(s)) return; if (k==n) fout<<s<<endl; else for (i=1;i<=9;i+=2) dfs(s*10+i,k+1); } int main() { int i,a[5]; fin>>n; a[1]=2;a[2]=3;a[3]=5;a[4]=7; for (i=1;i<=4;i++) dfs(a[i],1); return 0; }
转载请注明原文地址: https://www.6miu.com/read-61070.html

最新回复(0)