20 30 40
7 13 13 17 17 23
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<stack> using namespace std; void isPrime( int a[]) { for ( int i=0;i<10007;i++) { a[i] = 1; } a[0] = a[1] = 0; for ( int i=2;i<((10007+1)>>1);i++) { if (a[i]) { for ( int j=(i<<1);j<10007;j+=i) a[j] = 0; } } } int main(){ int prime[10007]; isPrime(prime); int a; while ( scanf ( "%d" ,&a)!=EOF) { a = (a>>1); int ans1 = a,ans2 = a; while (1) { if (prime[ans1] && prime[ans2]) break ; ans1--; ans2++; } printf ( "%d %d\n" ,ans1,ans2); } return 0; } |
原文:http://www.cnblogs.com/liwenchi/p/7259372.html