lingyun


私信TA

用户名:15210020303

访问量:79120

签 名:

喝水的鱼

等  级
排  名 27
经  验 16184
参赛次数 8
文章发表 152
年  龄 19
在职情况 学生
学  校 安徽建筑大学
专  业 电气

  自我简介:

程序爱好者

解题思路:

注意事项:

参考代码:

#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
const int M=10000;
int a[M];
int b[6]={2,1,3,5,7,9};
int visit[10];
int n;
int t=0;
int f_prm(int c)
{
	if(c==2) return 1;
	if(c==1) return 0;
	for(int i=3;i*i<=c;i++)
	{
		if(c%i==0)
		return 0;
	}
	return 1;
}
void dfs(int m,int c)
{
	if(c>n)
	{
		a[t++]=m;
		return ;
	}
	int i=0;
	if(c!=1)
	i++;
	for(;i<6;i++)
	{
		if(visit[b[i]]==0)
		{
			visit[b[i]]==1;
			if(f_prm(m*10+b[i]))
			{
				dfs(m*10+b[i],c+1);
			}
			visit[b[i]]==0;
		}
	}
	return ;
}
int main()
{
	while(cin>>n)
	{
		dfs(0,1);
		sort(a,a+t);
		for(int i=0;i<t;i++)
		{
			cout<<a[i]<<endl;
		}
	}
	return 0;
}


 

0.0分

1 人评分

  评论区

  • «
  • »