//根据定义判断素数---循环n-1次,当n很大时循环n次
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
boolean isPrime = true;
int x = in.nextInt();
if(x == 1)
{
isPrime = false;
}
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+"不是素数");
}
}
//当n很大时,循环n/2次
public static void main(String[] args) {
// TODO Auto-generated method stub
//去掉偶数后,从3到x-1,每次加2
//如果是偶数,立刻pass掉
//否则就开始循环
Scanner in = new Scanner(System.in);
int x = in.nextInt();
boolean isPrime = true;
if(x == 1||x!=2 && x%2 == 0)
{
isPrime = false;
}
else
{
for(int i = 3; i<x ;i = i+2)
{
if(x % i == 0)
{
isPrime = false;
break;
}
}
}
if(isPrime)
{
System.out.println(x+"是素数");
}
else
{
System.out.println(x+"不是素数");
}
}
//循环n的平方根次
public static void main(String[] args) {
// TODO Auto-generated method stub
//判断x的平方根次
Scanner in = new Scanner(System.in);
boolean isPrime = true;
int x = in.nextInt();
if(x == 1 || 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+"不是素数");
}
//打印前50个素数
public static void main(String[] args) {
// TODO Auto-generated method stub
//打印前50个素数
int[] primes = new int[50];
primes[0] = 2;
int cnt = 1;
out:
for(int x = 3;cnt<50;x++)
{
for(int i = 0;i<cnt;i++)
{
if( x%primes[i] == 0)
{
continue out;
}
}
//当内层for循环执行完后,若没有执行if内的执行体,则顺序执行当前代码,将x写入数组
primes[cnt++] = x;
}
for(int k:primes)
{
System.out.print(k+" ");
}
System.out.println(cnt);
}
//打印100以内的素数
public static void main(String[] args) {
// TODO Auto-generated method stub
//构造100以内的素数表(以计算机的思维)
boolean[] isPrime = new boolean[100];
for(int i = 0; i<isPrime.length;i++)
{
isPrime[i] = true;
}
for(int i = 2;i<isPrime.length;i++)
{
if(isPrime[i])
{
for(int k = 2; i*k<isPrime.length;k++)
{
isPrime[i*k] = false;
}
}
}
for(int i = 2; i<isPrime.length;i++)
{
if(isPrime[i])
{
System.out.print(i+" ");
}
}
}