让一切随风 Admin
帖子数 : 257 注册日期 : 12-11-03 年龄 : 32 地点 : 湖南
| 主题: 哥德巴赫曾猜测 周六 四月 20, 2013 8:54 pm | |
| 【哥德巴赫曾猜测】Time Limit:10000MS Memory Limit:65536KTotal Submit:971 Accepted:325 Description 德国数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数(素数对)的和。但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对。Input 输入任意的>6的正偶数(<32767)Output 试求给出的偶数可以分解成多少种不同的素数对(注: A+B与B+A认为是相同素数对)Sample Input 1234Sample Output 25 - 代码:
-
[font='Times New Roman']#include<iostream>[/font]
[font='Times New Roman']#include<cmath>[/font]
[font='Times New Roman']using namespace std;[/font]
[font='Times New Roman']int main()[/font]
[font='Times New Roman']{[/font]
[font='Times New Roman']int primer(int x);[/font]
[font='Times New Roman']int t=0,n,i;[/font]
[font='Times New Roman']cin>>n;[/font]
[font='Times New Roman']for(i=3;i<=n/2;i+=2)[/font]
[font='Times New Roman']if(primer(i))[/font]
[font='Times New Roman']if(primer(n-i))[/font]
[font='Times New Roman']t++;[/font]
[font='Times New Roman']cout<<t<<endl;[/font]
[font='Times New Roman']return 0;[/font]
[font='Times New Roman']}[/font]
[font='Times New Roman']int primer(int x)[/font]
[font='Times New Roman']{[/font]
[font='Times New Roman']int m,i;[/font]
[font='Times New Roman']m=(int)(sqrt(x));[/font]
[font='Times New Roman']for(i=2;i<=m;i++)[/font]
[font='Times New Roman']if(x%i==0) break;[/font]
[font='Times New Roman']if(i>m) return 1;[/font]
[font='Times New Roman']else return 0;[/font]
[font='Times New Roman']}[/font]
| |
|