【程序12】 题目:判断2-200之间有多少个素数,并输出所有素数
2013-08-22 18:53
330 查看
方法一:
使用平方优化版本。
#include <stdio.h>
#include <math.h>
int main(){
int i,j;
for(i=2;i<=200;++i){
for(j=(int)sqrt(i);j>=2;--j)
if(i%j == 0)break;
if(j<2)printf("%d\n",i);
}
return 0;
}
方法二:
对6取余方法:
#include <stdio.h>
#include <math.h>
int judge(int x){
int j = (int)sqrt(x);
for(j;j>=2;--j)
if(x%j == 0)return 0;
return 1;
}
int main(){
int i,j,flag;
for(i=3;i<=200;++i){
switch(i%6){
case 0:flag = 0;break;
case 1:flag = judge(i);break;
case 2:flag = 0;break;
case 3:flag = 0;break;
case 4:flag = 0;break;
case 5:flag = judge(i);break;
}
if(flag)printf("%d\n",i);
}
return 0;
}
方法三:
使用素数筛:
#include <stdio.h>
int map[201]={1,1};
int main(){
int i,j;
for(i=2;i<=200;++i)
for(j=i+i;j<=200;map[j]++,j+=i);
for(i=2;i<=200;++i)
if(!map[i])
printf("%d\n",i);
return 0;
}
使用平方优化版本。
#include <stdio.h>
#include <math.h>
int main(){
int i,j;
for(i=2;i<=200;++i){
for(j=(int)sqrt(i);j>=2;--j)
if(i%j == 0)break;
if(j<2)printf("%d\n",i);
}
return 0;
}
方法二:
对6取余方法:
#include <stdio.h>
#include <math.h>
int judge(int x){
int j = (int)sqrt(x);
for(j;j>=2;--j)
if(x%j == 0)return 0;
return 1;
}
int main(){
int i,j,flag;
for(i=3;i<=200;++i){
switch(i%6){
case 0:flag = 0;break;
case 1:flag = judge(i);break;
case 2:flag = 0;break;
case 3:flag = 0;break;
case 4:flag = 0;break;
case 5:flag = judge(i);break;
}
if(flag)printf("%d\n",i);
}
return 0;
}
方法三:
使用素数筛:
#include <stdio.h>
int map[201]={1,1};
int main(){
int i,j;
for(i=2;i<=200;++i)
for(j=i+i;j<=200;map[j]++,j+=i);
for(i=2;i<=200;++i)
if(!map[i])
printf("%d\n",i);
return 0;
}
相关文章推荐
- 【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。
- 【程序2】 题目:判断101-200之间有多少个素数,并输出所有素数。
- 题目:判断1-200之间有多少个素数,并输出所有素数。
- 经典c程序(0008)--判断101-200之间有多少个素数,并输出所有素数
- 题目:判断101-200之间有多少个素数,并输出所有素数。
- 题目:判断101-200之间有多少个素数,并输出所有素数。
- 【程序6】判断101-200之间有多少个素数,并输出所有素数。
- 题目:判断101-200之间有多少个素数,并输出所有素数。
- 判断101-200之间有多少个素数,并输出所有素数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。
- 006-题目:判断101-200之间有多少个素数,并输出所有素数。
- 题目:判断101-200之间有多少个素数,并输出所有素数。
- Java笔试常见编程题目:判断101-200 之间有多少个素数,并输出所有素数
- 题目:判断101-200之间有多少个素数,并输出所有素数。
- 题目:判断101-200之间有多少个素数,并输出所有素数。
- java 题目:判断101-200之间有多少个素数,并输出所有素数。
- 【程序2】判断101-200之间有多少个素数,并输出所有素数。
- 判断101-200之间有多少个素数,并输出所有素数。
- 判断101-200之间有多少个素数,并输出所有素数。
- 判断100-200之间有多少素数 并输出所有素数
- 判断101-200之间有多少个素数,并输出所有素数。素数为一个大于1的自然数,除了1和它本身外,不能被其他自然数整除。