关闭

分拆素数和(http://acm.hdu.edu.cn/showproblem.php?pid=2098)

标签: 基础题杭电acm
100人阅读 评论(0) 收藏 举报
分类:
Problem Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
 
#include<iostream>
#include<cstring>
using namespace std;
const int n=10100;
int main()
{
	int prime[n];
	int i,j,a;
	for(i=2;i<n;++i)
		prime[i]=1;
	for(i=2;i<n;++i)
	{
		if(prime[i])
			for(j=i*2;j<n;j+=i)
				if(prime[j])
					prime[j]=0;
	}//以上为素数打表
	while(cin>>a&&a)
	{
		int num=0;
		for(i=2;i<a;++i)
			if(prime[i]==1&&prime[a-i]==1)//判断两个数是否都为素数
				num++;//计数器加1
		cout<<num/2<<endl;//因为结果重复,故num/2
	}
	return 0;
}


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

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

Sample Input
30 26 0
 

Sample Output
3 2
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:302次
    • 积分:32
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档