1109: 哥德巴赫曾猜测
Time Limit: 1 Sec Memory Limit: 128 MB
Description
德国数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数(素数对)的和。但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对
Input
输入任意的>6的正偶数(<32767)
Output
试求给出的偶数可以分解成多少种不同的素数对(注: A+B与B+A认为是相同素数对)
Sample Input
1234
Sample Output
25
HINT
Source
先把不是素数的数标记出来,再在素数里面找、
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <math.h> 4 using namespace std; 5 const int MAX=100000; 6 int main() 7 { 8 int i=0,j=0,n=sqrt(MAX)+1; 9 int a[MAX+1]={0}; 10 for(i=2;i<n;i++) 11 for(j=2;j<MAX/i;j++) 12 a[j*i]=1; 13 while(scanf("%d",&n)!=EOF) 14 { 15 int ans=0; 16 for(i=2;i<=n/2;i++) 17 { 18 if(a[i]==0&&a[(n-i)]==0) 19 { 20 ans++; 21 } 22 } 23 printf("%d\n",ans); 24 } 25 26 return 0; 27 }
时间: 2024-11-01 21:09:31