一、判断一个数是不是素数
变量n,因子i
1. 因子i的范围:2-sqrt(n)
2.判断素数的条件:n%i!=0
#include <stdio.h>
int main()
{
int n,i,k;
scanf("%d",&n);
k=sqrt(n);
for(i=2; i<=k; i++)//控制因子i的范围
{
if(n%i==0)
break;
}
if(i>k)//如果break指令没有运行,即没有该范围内因子,则最后i=k+1,即i>k表示n是素数
{
printf("yes.");
}
else
{
printf("no.");
}
return 0;
}
二、筛法求素数
#include <stdio.h>
int main()
{
int i,j,a[100];
//1.给数组赋值
for(i=1;i<100;i++)
{
a[i]=i+1;
}
a[0]=0;
//2.开始筛素数
for(i=0;i<100;i++)
{
for(j=i+1;j<100;j++)//a[j]是a[i]以后的数,即被筛的范围
{
if(a[i]!=0&&a[j]!=0)//(1)保证取余有意义(被除数有意义)
(2)后续通过让不是素数的数组=0筛掉非素数,进而不参与下一步筛选
{
if(a[j]%a[i]==0)//3.找出a[i]的倍数
{
a[j]=0;//筛掉非素数
}
}
}
}
for(i=0;i<100;i++)
{
if(a[i]!=0)
{
printf("%5d",a[i]);
}
}
return 0;
}