素数等差数列
2015-08-04 15:38
246 查看
拿水题来练练自己新学到的vector数组,强大的stl初get
思路打表将每个素数打下来,再一一枚举就行了
复杂度在最多N*N
所以随便暴力吧
链接
思路打表将每个素数打下来,再一一枚举就行了
复杂度在最多N*N
所以随便暴力吧
链接
#include<iostream> #include<cstdio> #include<algorithm> #include<vector> #include<cstring> using namespace std; bool used[30001]; vector<int>num; int main() { int i,j; memset(used,false,sizeof(used)); for(i=2;i<=10000;i++) { if(used[i])continue; if(!used[i]) { num.push_back(i); } for(j=i*2;j<=10000;j+=i) { used[j]=true; } } int ok=num.size(); int n; while(scanf("%d",&n)!=EOF){ int len=0; if(n<=1) { printf("No number sequence\n");continue; } for(i=0;i<ok;i++) { if(num[i]<=n) { len+=1;continue; } else { break; } } bool flag=false; int j; int sum; sum=0; for(i=0;i<len-2;i++) { for(j=2;j<=num[len-1]/2+1;j++) { if(used[num[i]]) continue; if(used[num[i]+j])continue; if(used[num[i]+2*j])continue; if(num[i]>num[len-1])break; else if(num[i]+2*j>num[len-1])break; else if(num[i]+j>num[len-1])break; printf("%d %d %d\n",num[i],num[i]+j,num[i]+2*j); flag=true; // sum++; } } //printf("%d\n",sum); if(!flag) printf("No number sequence\n"); } return 0; }
相关文章推荐
- 七夕节
- AdaBoost算法和java实现
- 七牛开发者中心1-快速入门
- Tar命令解压文件报错:stdin has more than one entry
- [转]Oracle Hidden Parameter:_allow_resetlogs_corruption
- ajax转换成json参数
- dSploitzANTI渗透教程之修改MAC地址与Wifi监听器
- 为什么要做IP地址反向解析(电信和联通)
- [opencv] 图像访问的几种方式
- 根据IP获取所在地天气
- 网页左右滑动效果
- Oracle之SQL优化顾问
- HTML5-新增语义化结构标签
- 程序员学炒股(4) 早晨十字星靠不靠谱
- 冒泡排序
- iOS培训-c语言基础学习
- Search for a Range
- Linux上的free命令详解
- 从特征描述符到深度学习:计算机视觉发展20年
- 海量数据处理专题(二)——Bloom Filter