Scanner in=new Scanner(System.in);
int x=in.nextInt();
boolean isPrime=true;
if(x==1)
{
isPrime=false;
}
法一: 暴力除法:从2到x-1看是否被整除
for(int i=2;i<x;i++)
{
if(x%i==0)
{
isPrime=false;
break;
}
}
if(isPrime)
{
System.out.println(x+"是素数");
}
else
{
System.out.println(x+"不是素数");
}
法二:去除偶数,从3到x-1;每次加2
if(x%2==0&&x!=2)
{
isPrime=false;
}
else
{
for(int i=3;i<x;i+=2)
{
if(x%i==0)
{
isPrime=false;
break;
}
}
}
if(isPrime)
{
System.out.println(x+"是素数");
}
else
{
System.out.println(x+"不是素数");
}
法三:用sqrt,求平方根
if(x%2==0&&x!=2)
{
isPrime=false;
}
else
{
for(int i=3;i<Math.sqrt(x);i+=2)
{
if(x%i==0)
{
isPrime=false;
break;
}
}
}
if(isPrime)
{
System.out.println(x+"是素数");
}
else
{
System.out.println(x+"不是素数");
}
三种方法求素数(Java新手)
最新推荐文章于 2022-04-07 22:41:18 发布