2098--拆分素数和
来源:互联网 发布:js array 删除 编辑:程序博客网 时间:2024/06/16 21:22
Problem Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
Sample Input
30
26
0
Sample Output
3
2
欧拉筛法
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define M 10005int prime[M]={0},vis[M],sum[M]={0};void eular(){ int i,j,num=0,t; memset(vis,1,sizeof(vis)); vis[0] = vis[1] = 0; for (i=2,num=0; i<M; i++) { if (vis[i]) { prime[num++] = i; } for (j=0; j<num; j++) { t = i*prime[j]; if (t < M) vis[t] = 0; if (i%prime[j] == 0) { break; } } } for (i=0; i<num; i++) { for (j=i+1; j<num; j++) { if (prime[i]+prime[j]<=10000) sum[prime[i]+prime[j]]++; } }}int main(){ eular(); int n; while (scanf ("%d",&n) && n) { printf ("%d\n",sum[n]); } return 0;}
0 0
- 2098--拆分素数和
- hdu2098拆分素数和
- 素数拆分和
- hdu2098拆分素数和
- hpu 2098 素数拆分
- hdu2098--拆分素数和--数论
- 暑期集训之拆分素数和
- 整数的素数对拆分
- 哥德巴赫猜想: 任何一个大于2的偶数都可以拆分为两个素数的和
- HDU 5104 Primes Problem(拆分素数和问题)【BestCoder Round #18 1001】
- 数据库拆分:横向拆分和纵向拆分
- 数据库拆分:横向拆分和纵向拆分
- HDU 2098 分拆素数和(素数)
- 2098 分拆素数和【素数】
- 垂直拆分和水平拆分
- 纵向拆分和横向拆分
- HDU 3641 Treasure Hunting (素数拆分)
- 算法练习--整数拆分为素数乘积
- 工厂模式
- FHS
- linux系统打开路由转发功能
- jstl 多个判断条件正确的写法
- 泛型与原生态类型
- 2098--拆分素数和
- 查找子串出现的次数
- springMVC文件上传,判断是否有文件上传,解决没有文件上传时的出现异常的问题
- 蜕变历程(1)
- (一) androd内核基础
- 操作系统之轮转法调度
- MySQL 5.7.15 ZIP版本配置方案
- html dom事件机制
- C++第二次作业(Accelerated C++第四章)