/* ID:chenjiong PROG:sprime LANG:C++ */ #include <stdio.h> #include <string.h> #include <math.h> int N; int ans; bool is_prime(int x) { if ( x == 1 ) return false; if ( x == 2 || x == 3 ) return true; if ( x % 2 == 0 ) return false; int i; for ( i = 3; i <= sqrt(x); i += 2) if ( x % i == 0 ) return false; return true; } void dfs(int cur) { if ( cur == N ) { printf("%d\n",ans); return; } int i; if ( cur == 0 ) { for ( i = 1; i <= 9; i++) { int tmp = ans; ans = ans * 10 + i; if ( is_prime(ans) ) dfs(cur + 1); ans = tmp; } } else { for ( i = 1; i <= 9; i += 2) { int tmp = ans; ans = ans * 10 + i; if ( is_prime(ans) ) dfs(cur + 1); ans = tmp; } } } int main() { freopen("sprime.in","r",stdin); freopen("sprime.out","w",stdout); scanf("%d",&N); ans = 0; dfs(0); return 0; }