sdut oj 2404 super prime(素数筛)
来源:互联网 发布:redis同步mysql 编辑:程序博客网 时间:2024/06/06 17:33
题目链接:点击打开链接
题目大意:
We all know, prime is a kind of special number which has no other factors except of 1 and itself.
2,3,5,7,11,13,17,19,23,29 are the top 20 primes.
Now there is a new question about prime:
We call a prime as super prime when and only when which can be represented as the sum of multiple continuous primes. For example: 5=2+3, so 5 is a super prime.
Please program to judge whether a number is a super prime or not.
2,3,5,7,11,13,17,19,23,29 are the top 20 primes.
Now there is a new question about prime:
We call a prime as super prime when and only when which can be represented as the sum of multiple continuous primes. For example: 5=2+3, so 5 is a super prime.
Please program to judge whether a number is a super prime or not.
输入
The first line is an integer T (T<=1000), and then T lines follow.
There is only one positive integer N(1<N<100000).
There is only one positive integer N(1<N<100000).
输出
For each case you should output the case number first, and then the word "yes" if the integer N is a super prime, and you should output "no" otherwise.
示例输入
3578
示例输出
Case 1: yesCase 2: noCase 3: no
代码:
///Super Prime#include <iostream>#include<cmath>#include<cstring>#include<cstdio>using namespace std;int main(){ int h=100100; int q[100100]; memset(q,0,sizeof(q)); q[0]=q[1]=1; int w=sqrt((double)h)+1; int p,t,k; for( p=2; p<=w; p++) { if(q[p]==0) { for(t=p; t*p<=h; ++t) { if(q[t]==0) { for(k=p*t; k<=h; k*=p) { q[k]=1; } } } } } int y[10000]; int top=0; for(int i=0; i<=h; i++) { if(q[i]==0) y[top++]=i; } int x,n; cin>>x; for(int i=1; i<=x; i++) { cin>>n; if(q[n]==1||n==2||n==3||n==7) { printf("Case %d: no\n",i); } else { for(int j=0;j<top;j++) { if(y[j]==n) { p=j; break; } } int front=p ,back=p; int sum=0; front--; back--; back--; sum=sum+y[front]; sum=sum+y[back]; int f=0; while(1) { if(sum>n) { sum=sum-y[front]; front--; if(back==front) { if(back==0) { f=0; break; } back--; sum=sum+y[back]; } } if(sum==n) { f=1; break; } else { if(back==0) { f=0; break; } back--; sum=sum+y[back]; } } if(f==0)printf("Case %d: no\n",i); else printf("Case %d: yes\n",i); } }return 0;}
0 0
- sdut oj 2404 super prime(素数筛)
- 完美的素数 (sdut oj)
- 求素数 sdut oj 1468(欧拉筛)
- Prime Distance----筛素数
- 九度OJ 1040 Prime Number (筛素数,试除法)
- Super Prime
- C语言实验——素数 (sdut oj)
- Sieve Prime 素数筛法
- Light OJ 1356 Prime Independence 最大独立集+素数筛选
- 九度oj Prime Number 1040 (素数打表)
- SDUT Fermat’s Chirstmas Theorem(素数筛)
- SDUT 3305 质数中的质数 (素数筛)
- SDUT 3002-素数间隙(素数筛+暴力)
- OJ 1468 求素数(素数筛)
- poj 2689 Prime Distance 二次筛素数
- poj 2689 Prime Distance(筛素数)
- [数论] HOJ 2276 Count prime 筛素数
- Prime Distance(二次筛素数)
- 聚集运算之group
- 文本域与input窗口中 修改placeHolder 颜色
- 快速排序算法(排序详解)
- iOS蓝牙开发(一)蓝牙相关基础知识
- 快速排序
- sdut oj 2404 super prime(素数筛)
- JAVA 类 URL
- java中重载和重写
- AngularJS之表单验证
- jquery语法
- 架构大数据分析应用
- IOI2000 邮局
- 【SSH网上商城项目实战21】从Demo中看易宝支付的流程
- 极角排序