C语言--判断素数
程序员文章站
2024-01-14 22:47:10
...
判断素数
方法一:
课本的代码
#include<stdio.h>
int prime(int n) //判断是否素数
{
int j,m;
m = n;
for(j = 2;j <=m/2;j++){
if(m%j==0){
break;
}
}
if(j>m/2&&m!=1) return 1;//是素数
else return 0;
}
int main()
{
int n=100;
int count = 0;
for(int i=1;i<=n;i++){
if(prime(i)){
count++;
printf("%d\n",i);
}
}
printf("一共有%d个素数",count);
return 0;
}
方法二:
#include<math.h>
int prime(int t){
int flag=1;//flag=1表示素数
if(t==1) flag=0; //可以用flag先标记1不是素数,不用直接当t==1时就return 0;
for(int j=2;j<=sqrt(t);j++){
if(t%j==0) {
flag=0;
break;
}
}
if(flag==1) return 1;
else return 0;
}
方法三:
1到100000的数全都用0/1表示是否素数存于数组a[N]中
#include<stdio.h>
#include<math.h>
#define N 1000000 //
int a[N]; //这两行得放在外面
int main()
{
int m,n,i;
int count=0;
for(i=0;i<N;i++) a[i]=1;//循环初始化a[i]
scanf("%d",&m);
n=(int)sqrt(N);
for(i=2;i<=n;i++){
for(int j=i+i;j<=N;j=j+i){
a[j-1]=0;
}
}
for(i=0;i<m;i++){
if(a[i]) count++;
}
printf("%d",count);
return 0;
}
上一篇: OC 内存管理-02 ARC 内存管理
下一篇: OC中的构造方法