筛选素数,打表,区间内特定元素的个数
2014-07-25 20:16
267 查看
#include<stdio.h>
int notprime[1000010];
int arr[1000010]={0,0};
int main(){
int i,j,k,m,n;
int cnt=0;
int T;
int l,r;
int kase;
for(i=2;2*i<1000010;i++){
if(!notprime[i]){
for(j=2*i;j<1000010;j+=i){
notprime[j]=1;
}
}
}//素数打表;
for(i=2;i<1000010;i++){
if(!notprime[i]){
int d=0;
int t=i;
while(t){
d+=t%10;
t/=10;
}
if(!notprime[d]) {
cnt++;
}
}
arr[i]=cnt;
}
scanf("%d",&T);
for(kase=1;kase<=T;kase++){
scanf("%d%d",&l,&r);
printf("Case #%d: %d\n",kase,arr[r]-arr[l-1]);
}
return 0;
}
int notprime[1000010];
int arr[1000010]={0,0};
int main(){
int i,j,k,m,n;
int cnt=0;
int T;
int l,r;
int kase;
for(i=2;2*i<1000010;i++){
if(!notprime[i]){
for(j=2*i;j<1000010;j+=i){
notprime[j]=1;
}
}
}//素数打表;
for(i=2;i<1000010;i++){
if(!notprime[i]){
int d=0;
int t=i;
while(t){
d+=t%10;
t/=10;
}
if(!notprime[d]) {
cnt++;
}
}
arr[i]=cnt;
}
scanf("%d",&T);
for(kase=1;kase<=T;kase++){
scanf("%d%d",&l,&r);
printf("Case #%d: %d\n",kase,arr[r]-arr[l-1]);
}
return 0;
}
相关文章推荐
- [tips]筛选特定区间内素数个数
- Linq操作符之筛选特定位置的元素
- poj 3292 Semi-prime H-numbers 素数变形+打表+筛选法
- [ACM] POJ 2689 Prime Distance (大区间素数筛选)
- 求一个特定函数在定义区间上的值是否都为素数
- POJ2689:素数区间筛选
- 区间素数 (高精度+打表)
- POJ 2689 Prime Distance (素数筛选法,大区间筛选)
- 区间素数筛选法 joj 1928 Prime Distance
- 筛选法求素数 打表
- LightOJ 1197 - Help Hanzo 【思维找素数 -> 区间素数筛选】
- 素数表的快速建立,合数分解,1-2^31内某个长度小于10w的区间素数筛选的三个模板及解析
- LightOj 1197 Help Hanzo (区间素数筛选)
- LightOJ 1197 Help Hanzo (区间素数筛选法)
- 区间素数筛选 poj2689
- LightOJ 1197 Help Hanzo(区间素数筛选)
- 素数筛选法打表模板
- HDU 2136 Largest prime factor(素数筛选+打表)
- LightOJ 1197 Help Hanzo(区间素数筛选)
- poj 2689(区间素数筛选)