HDU 2098 分拆素数和

来源:互联网 发布:永恒之塔5.0人物数据 编辑:程序博客网 时间:2024/06/08 15:00

分拆素数和

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 33690    Accepted Submission(s): 14672


Problem Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
 

Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
 

Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
 

Sample Input
30260
 

Sample Output
32
 

Source
2007省赛集训队练习赛(2)
 

Recommend
lcy   |   We have carefully selected several similar problems for you:  1262 1431 2097 2096 2084 
 


#include <iostream>#include <cstdio>#include <algorithm>#include <set>#include <string>#include <cstring>#include <sstream>#include <vector>#include <map>#include <cmath>using namespace std;int is_prime(int n){    if(n<2) return 0;    if(n==2) return 1;    if(n%2==0) return 0;    for(int i=3;i*i<=n;i+=2)    {        if(n%i==0) return 0;    }    return 1;}int main(){    int a;    while(cin>>a&&a)    {    int cnt=0;    for(int i=2;i<=a/2-1;i++)    {        if(is_prime(i)&&is_prime(a-i))            cnt++;    }    cout<<cnt<<endl;    }    return 0;}




0 0
原创粉丝点击