为什么可以开根号判断素数,求1-100的素数
素数也叫质数,质数是指在⼤于1的⾃然数中,除了1和它本⾝以外不再有其他因数的⾃然数。“1”既不是素数,也不是合数
因为如果⼀个数不是素数是合数,那么⼀定可以由两个⾃然数相乘得到,其中⼀个⼤于或等于它的平⽅根,⼀个⼩于或等于它的平⽅根。并且成对出现,所以只⽤计算到该数的平⽅根以下看除了1有没有该数的因数,若没有,则是素数。
public class sushu {
public static void main(String[] args){
int flag=0;//标志位
for(int i=2;i<100;i++)
什么是自然数
{
for(int j=2;j*j<=i;j++)//j*j<i;相当于对i开了根号,j只⽤加到i的平⽅根,⽽不⽤加到i-1减少了计算量
{
if((i%j)==0)
{
flag++;//如果有因数,flag+1
break;//有因数,直接结束内层循环,减少计算量
}
}
if(flag==0)//表⽰⼀直没有i的因数
{
// flag=0;
System.out.print(i+"  ");
}
flag=0;//⼀次外层i循环结束,flag归位,进⾏下⼀次循环
}
}
}
结果
2357111317192329313741434753596167717379838997
质数的性质
(1)质数p的约数只有两个:1和p。
(2)初等数学基本定理:任⼀⼤于1的⾃然数,要么本⾝是质数,要么可以分解为⼏个质数之积,且这种分解是唯⼀的。
(3)质数的个数是⽆限的。
(4)⼤于10的质数中,个位数只有1,3,7,9。