POJ 2739
2016-04-22 11:06
169 查看
首先求出10000以内的所有质数,然后对每个输入的2-10000的数,对每个小于这个数的每个质数开始往后加和,若和等于输入的数则计数加一。
就是用穷举的思想,没有超时,若超时,可以用列表的方法做:就是对于每个数提前求出它的值然后存入一个数组,然后对于输入的数直接输出提前存好的数就可以了。
#include<iostream>
using namespace std;
int main()
{
int prime[6001]={0};
//int subprime[1300]={0};
unsigned int primelen=0;
for(int i=2;i<10001;i++)
{
bool flag=true;
for(int j=2;j<=i/2;j++)
{
if(i%j==0)
{
flag=false;
break;
}
}
if(flag==true)
{
prime[primelen]=i;
primelen++;
}
}
/* for(int i=0;i<primelen;i++)
{
if(i%10==9)
{
cout<<prime[i]<<endl;
}
else
{
cout<<prime[i]<<' ';
}
}
*/
int a;
while(cin>>a&&a!=0)
{
int num=0;
for(unsigned int i=0;i<primelen;i++)
{
int sum=0;
int j=0;
//int sublen=0;
while(sum<a)
{
sum+=prime[i+j];
//subprime[j]=prime[i+j];
j++;
}
if(sum==a)
{
num++;
/* for(int k=0;k<j;k++)
{
cout<<subprime[k]<<' ';
}
cout<<endl;
*/
}
if(prime[i]>=a)
{
break;
}
}
cout<<num<<endl;
}
return 0;
}
就是用穷举的思想,没有超时,若超时,可以用列表的方法做:就是对于每个数提前求出它的值然后存入一个数组,然后对于输入的数直接输出提前存好的数就可以了。
#include<iostream>
using namespace std;
int main()
{
int prime[6001]={0};
//int subprime[1300]={0};
unsigned int primelen=0;
for(int i=2;i<10001;i++)
{
bool flag=true;
for(int j=2;j<=i/2;j++)
{
if(i%j==0)
{
flag=false;
break;
}
}
if(flag==true)
{
prime[primelen]=i;
primelen++;
}
}
/* for(int i=0;i<primelen;i++)
{
if(i%10==9)
{
cout<<prime[i]<<endl;
}
else
{
cout<<prime[i]<<' ';
}
}
*/
int a;
while(cin>>a&&a!=0)
{
int num=0;
for(unsigned int i=0;i<primelen;i++)
{
int sum=0;
int j=0;
//int sublen=0;
while(sum<a)
{
sum+=prime[i+j];
//subprime[j]=prime[i+j];
j++;
}
if(sum==a)
{
num++;
/* for(int k=0;k<j;k++)
{
cout<<subprime[k]<<' ';
}
cout<<endl;
*/
}
if(prime[i]>=a)
{
break;
}
}
cout<<num<<endl;
}
return 0;
}
相关文章推荐
- 继承
- CSS与HTML学习成果基础测验
- leetcode——343——Integer Break
- 字符串切割componetsSeparatedByString注意
- 2016 - 百度 - 实习 -- 在线笔试
- xml基础、DTD验证、Schema验证
- 统计代码行数
- c++第4次上机实验
- 数据结构-栈的实现之行编译器核心实现
- Linux 命令
- Java学习笔记--迭代器
- telnet 使用smtp发送邮件
- Hadoop完全分布式部署
- 快速部署有身份验证和授权的MongoDB Replica SET复制集
- servlert生成session传到jsp,servlert从jsp页面获取session的值
- 如何阅读一本书笔记4之主动的阅读
- SQL SELECT DISTINCT 语句
- 如何在CentOS 6.5上安装EPEL 源
- [033]八大排序算法详解——插入排序
- 临界区