1、素数的判断
//5.1、素数的判断
bool isPrime(int n)
{
if(n<=1) return false;
else
{
int sqr=(int)sqrt(1.0*n);
for(int i=2;i<=sqr;i++)
{
if(n%i==0) return false;
}
return true;
}
}
bool isPrime(int n)
{
if(n<=1) return false;
for(int i=2;i*i<=n;i++)
{
if(n%i==0) return false;
}
return true;
}
2、100以内的素数
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn=101;
int prime[maxn]; //存放素数
int pnum=0; //素数的个数
bool flag[maxn]; //标记数组
bool isPrime(int n)
{
if(n<=1) return false;
else
{
int sqr=(int)sqrt(1.0*n);
for(int i=2;i<=sqr;i++)
{
if(n%i==0) return false;
}
return true;
}
}
void find_prime()
{
for(int i=1;i<maxn;i++)
{
if(isPrime(i)==true)
{
prime[pnum++]=i;
flag[i]=true;
}
//else flag[i]=false; ==>没必要,默认赋为false
}
}
int main()
{
find_prime();
for(int i=0;i<pnum;i++)
{
cout<<prime[i]<<" ";
}
return 0;
}
3、100以内的素数(筛法)
#include<iostream>
#include<cstdio>
using namespace std;
const int maxn=101;
int prime[maxn];
int pnum=0;
bool flag[maxn]; //不是素数记为true;是素数记为false
void find_prime()
{
for(int i=2;i<maxn;i++)
{
//如果i是素数
if(flag[i]==false)
{
//加入素数表
prime[pnum++]=i;
//筛去它的倍数
for(int j=i+i;j<maxn;j+=i)
{
flag[j]=true;
}
}
}
}
int main()
{
find_prime();
for(int i=0;i<pnum;i++)
{
cout<<prime[i]<<" ";
}
return 0;
}