直接穷举一下,一边穷举一边判断…… 几乎瞬间出答案。 当然如果是比赛,打表才是最好的选择。
/*
TASK:sprime
LANG:C++
*/
#include <cstdio>
#include <cmath>
int n;
inline bool check(int k)
{
for (int i = 2; i <= sqrt(k); ++ i)
if (k % i == 0) return false;
return true;
}
void dfs(int k, int num)
{
if (k == n)
{
printf("%d\n", num);
return;
}
for (int i = 0; i != 10; ++ i)
if (check(num * 10 + i)) dfs(k + 1, num * 10 + i);
}
int main()
{
freopen("sprime.in", "r", stdin);
freopen("sprime.out", "w", stdout);
scanf("%d", &n);
dfs(1, 2);
dfs(1, 3);
dfs(1, 5);
dfs(1, 7);
return 0;
}