1357. 优质牛肋骨
作者:互联网
数字本身为质数,且其所有前缀数字均为质数。
思路
- 枚举每一位
- 首位只能从\(\{2,3,5,7\}\)选取
- 其余位只能从\(\{1,3,5,7\}\)中选取
int n;
bool isprime(int x)
{
if(x < 2) return false;
for(int i=2;i*i<=x;i++)
if(x % i == 0)
return false;
return true;
}
void dfs(int u,int x)
{
if(u == n)
{
cout<<x<<endl;
return;
}
for(int i=1;i<=9;i+=2)
{
int t=x*10+i;
if(isprime(t))
dfs(u+1,t);
}
}
int main()
{
cin>>n;
int a[]={2,3,5,7};
for(int i=0;i<4;i++)
dfs(1,a[i]);
//system("pause");
return 0;
}
标签:优质,return,数字,int,质数,肋骨,1357,选取,false 来源: https://www.cnblogs.com/fxh0707/p/14814816.html