hdoj 分拆素数和 2089 (素数打表++枚举)
来源:互联网 发布:seo技术是什么意思 编辑:程序博客网 时间:2024/05/16 08:55
分拆素数和
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 27337 Accepted Submission(s): 11945
Problem Description
把一个偶数拆成两个不同素数的和,有几种拆法呢?
Input
输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。
Output
对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。
Sample Input
30260
Sample Output
32//代码不好,,运行时间太长了(780Ms)。。。#include<stdio.h>#include<string.h>#define N 10010int p[N];bool pp[N];int pnum;int getp(){int i,j;memset(pp,false,sizeof(pp));for(i=2;i<N;i++){if(!pp[i])p[pnum++]=i;for(j=0;j<pnum&&p[j]*i<N;j++){pp[p[j]*i]=true;if(i%p[j]==0)break;}}pp[0]=pp[1]=true;}int main(){int n,i,j,cnt,sum;getp();while(scanf("%d",&n),n){cnt=sum=0;for(i=0;i<pnum-1;i++){for(j=i+1;j<pnum;j++){if(p[i]+p[j]==n)cnt++;}}printf("%d\n",cnt);}return 0;}//机智的方法。#include<stdio.h>#include<string.h>#include<math.h>#define N 10010bool p(int x){for(int i=2;i<=sqrt(x);i++)if(x%i==0)return false;return true;}int main(){int i,n,cnt;while(scanf("%d",&n),n){cnt=0;for(i=2;i<=n/2;i++){if(i!=(n-i)&&p(i)&&p(n-i))cnt++;}printf("%d\n",cnt);}return 0;}
0 0
- hdoj 分拆素数和 2089 (素数打表++枚举)
- HDOJ 分拆素数和 2098(素数打表)
- hdoj 2098 分拆素数和 【素数打表】
- HDU 2089 分拆素数和 (素数打表)
- hdoj2098分拆素数和(素数打表)
- 分拆素数和(素数打表)
- hdoj--2098--分拆素数和(枚举)
- hdoj2098分拆素数和【打表】
- HDU2098分拆素数和【打素数表+二分】
- 杭电-2098 分拆素数和 (素数打表)
- 杭电 2098 分拆素数和 (筛选素数 打表 打表在输入数据之后)
- 杭电 Problem 2008 分拆素数和 【打表】
- hdoj 2098 分拆素数和
- hdoj 2098 分拆素数和
- hdoj 2098 分拆素数和
- hdoj.2098 分拆素数和 20140723
- hdoj 2098 分拆素数和
- HDOJ 2098 分拆素数和
- 系统管理员必学的30个Linux实用命令
- 文章标题
- CF #326 (Div. 2) E Duff in the Army
- mysql备份利器 Innobackup 大数据备份还原
- 回调与排序
- hdoj 分拆素数和 2089 (素数打表++枚举)
- 记录——《C Primer Plus (第五版)》第九章编程练习第八题
- 1024. 科学计数法 (20)
- Android ffmpeg+librtmp+speex交叉编译
- POJ 2513 字典树
- java类的初始化顺序
- 高大上网站布局的三个技巧
- WordPress容易被忽略的SEO设置技巧
- vsftpd服务器搭建与使用