其实可以不分小雨N的情况,只不过当初写得时候才发现小于5的那个算法只能算5以下,不然计算会超时,但又懒得改,所以就在此基础上写了,题目不写了,大家都懂
#include <iostream>
#include <cmath>
using namespace std;
bool PrimeNumber(int n)
{
int i;
for (i=2; i<n; i++)
{
if (n%i == 0)
return false;
}
return true;
}
void Recursion(int j, int n)
{
int i;
if(n == 1)
{
cout<<j<<endl;
return;
}
for(i=1; i <= 9; i++)
{
if(PrimeNumber(j*10+i) && j != 1)
{
Recursion(j*10+i, n-1);
}
}
}
int main()
{
int N;
int i;
int t;
cin >>N;
if (N<5)
{
for (i=pow(10, N-1); i < pow(10, N); i++)
{
t=i;
while (t > 0)
{
if (PrimeNumber(t) && t != 1)
t = floor(t/10);
else
t=-1;
}
if (t == 0)
cout<<i<<endl;
}
}
else
{
Recursion(2, N);
Recursion(3, N);
Recursion(5, N);
Recursion(7, N);
}
return 0;
}