poj739
来源:互联网 发布:软件测试答辩ppt 编辑:程序博客网 时间:2024/06/14 16:44
判断一个数(1,1000)能够写成几种连续素数之和的形式
这道题很简单,如果输入量很大就用筛法把所有素数(1,1000)求出来.如果输入不大,就写一个isprime函数直接判断,没有太多可说的内容.
代码:首先找到一个最小的尚未被删除的素数,记录它,然后删除它的所有整数倍数.
int j = 2, t = 0; int Isdeleted[1000] = {-1,-1}; while(j<=1000) { while( Isdeleted[j] == -1)//找到第一个没有被删除的最小元素 { j++; } Prime[t++] = j; for(int k = j;k<=1000;k+=j) { Isdeleted[k] = -1;//删除 } }
#include "stdafx.h"#include "iostream"#include "cmath"using namespace std;int Prime[168] = {0};int isprime(int N){ if(N%2 == 0&&N!=2) return 0; for (int i = 3;i*i <=N;i+=2) { if(N%i==0) return 0; } return 1;}void Find(int N){ int sum = 0; int Num = 0; for(int i = 2;i<= N;i++) { while(!isprime(i))//找到一个素数 i++; sum = 0; for(int j = i;sum<=N;j++) { while(!isprime(j))//找到一个素数 j++; sum += j; if(sum==N) Num++; } } cout<<Num<<endl;}int main(){ int N; while(1) { cin>>N; if(N==0) break; Find(N); } return 0;}
0 0
- poj739
- LinkedHashMap去重的方法
- Android中自定义组合控件
- Interpolator 被用来修饰动画效果,定义动画的变化率
- Windbg驱动双机调试环境配置
- [转]Ubuntu 12.04 Gitolite 安装指南
- poj739
- 查看LINUX进程内存占用情况
- 15_09_18 Android 程序结构图
- Echarts Force力导向图实现节点可折叠
- Processing 练习(10) - 条形码
- Android JSON(Fastjson,Gson)
- Android Service——活动和服务进行通信
- 如何用C++函数实现类似三目运算符的功能
- C# 窗口连接数据库 显示数据