解题思路:dfs搜索,为保持代码的简洁性,直接用for遍历0到9,没有选择2,3,5,7
注意事项:从小到大搜索,直接输出,省去了排序。
参考代码:
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
int N;
bool is(int x)
{
if(x==0||x==1)
return false;
for(int i=2;i<=sqrt(x);i++)
{
if(x%i==0)
return false;
}
return true;
}
void dfs(int x,int num)
{
if(is(x)==false)
return ;
if(num==N)
cout<<x<<endl;
for(int i=0;i<=9;i++)
{
int temp=10*x+i;
dfs(temp,num+1);
}
}
int main()
{
cin>>N;
for(int i=0;i<=9;i++)
{
dfs(i,1);
}
return 0;
}
0.0分
1 人评分
逆反的01串 (C++代码)(依旧推荐switch)浏览:1003 |
C语言程序设计教程(第三版)课后习题6.4 (C语言代码)浏览:741 |
点我有惊喜!你懂得!浏览:2248 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:645 |
上车人数 (C语言代码)浏览:816 |
WU-字符串比较 (C++代码)浏览:824 |
C语言程序设计教程(第三版)课后习题9.4 (C语言代码)浏览:699 |
母牛的故事 (C语言代码)浏览:739 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:729 |
C二级辅导-统计字符 (C语言代码)浏览:514 |