Java程序判断素数

编写一个Java程序,使用For循环、While循环和函数来检查素数。素数是除了1和它本身以外不能被任何其他数整除的自然数。

它们是:2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97、101、103、107、109、113、127、131、137、139、149、151、157、163、167、173、179、181、191、193、197、199等等。

Java程序使用For循环检查素数

此程序允许用户输入任何整数值。接下来,这个示例程序使用For循环检查给定数字是素数还是非素数。

提示:2是唯一的偶数。

import java.util.Scanner;

public class Example {	
	
	private static Scanner sc;
	
	public static void main(String[] args) 
	{	
		int i, number, count = 0; 
		sc = new Scanner(System.in);
		
		System.out.print(" Please Enter any Integer : ");
		number = sc.nextInt();		
		
		for (i = 2; i <= number/2; i++)
		{
			if(number % i == 0)
		    {
				count++;
		        break;
		    }	
		}
		if(count == 0 && number != 1 )
		{
			System.out.println( number + " is a Prime");
		}
		else
		{
		   System.out.println(number + " is Not");
		}
	}
}

使用for循环输出。

Java Program to Check Prime Number using For Loop

我们初始化整数i的值为2,并将(i <= Number/2)作为终止条件。

在for循环中,有一个If语句来检查Number是否能被i整除且余数为0。如果条件为True,Count会递增,并执行Break语句

接下来,我们使用另一个If语句来检查Count是否为零且Number不等于1。如果为True,则该数为素数。

在上面的Java程序素数检查示例中,用户输入的整数是11。

第一次迭代:for(i = 2; i <= 11/2; i++)

  • 条件 (2 <= 5.5) 为True。因此,它检查If语句。
  • if(number % i == 0) => if (11%2 == 0) – 条件为False
  • i++ 表示 i 变为 3

第二次迭代:(i = 3; 3 <= 11/2; i++)

  • 条件 (3 <= 5.5) 为True。
  • if (11 % 3 == 0) – 条件为False,
  • i 变为 4。

第三次迭代:(i = 4; 4 <= 11/2; i++)

  • 条件 (4 <= 5.5) 为True。
  • if (11 % 4 == 0) – 条件为False。
  • i 变为 5

第四次迭代:(i = 5; 5 <= 11/2; i++)

  • 条件 (5 <= 5.5) 为True。
  • if (11 % 5 == 0) – 条件为False。
  • i 变为 6

第五次迭代:(i = 6; 6 <= 11/2; i++)。这意味着For循环内的条件 (6 <= 5.5) 为False。因此,编译器会跳出For循环

接下来,它将进入If语句。 if(count == 0 && Number!= 1 ) 。

在所有五次迭代中,Java If语句都失败了,因此Count的值没有从初始化的0递增,并且Number= 11。所以,条件为True,该数字是素数。

Java程序使用While循环检查素数

此示例使用While循环检查给定数字是素数还是非素数。

import java.util.Scanner;

public class Example {	
	
	private static Scanner sc;
	
	public static void main(String[] args) 
	{	
		int i = 2, num, count = 0; 
		sc = new Scanner(System.in);
		
		System.out.print(" Please Enter any Value : ");
		num = sc.nextInt();		
		
		while(i <= num/2)
		{
			if(num % i == 0)
		    {
				count++;
		        break;
		    }
			i++;
		}
		if(count == 0 && num != 1 )
		{
			System.out.println( num + " is a Prime");
		}
		else
		{
		   System.out.println(num + " is Not");
		}
	}
}

我们只是用While循环替换了上面的示例中的For循环。如果您不了解循环,请参考WHILE LOOP

输出

Program to Check Prime Number using While Loop

让我再输入一个

 Please Enter any Value : 32
32 is Not

Java程序使用函数检查素数

这个程序查找素数与第一个示例相同。但是,我们将逻辑分离并将其放入一个单独的方法中。

import java.util.Scanner;

public class Example {	
	
	private static Scanner sc;
	
	public static void main(String[] args) 
	{	
		int num, cnt = 0; 
		sc = new Scanner(System.in);
		
		System.out.print(" Please Enter any : ");
		num = sc.nextInt();
		
		cnt = PriNu(num);
		
		if(cnt == 0 && num != 1 )
		{
			System.out.println( num + " is a Prime");
		}
		else
		{
		   System.out.println(num + " is Not");
		}
	}
	
	public static int PriNu(int num)
	{
		int i, cnt = 0;
		
		for (i = 2; i <= num/2; i++)
		{
			if(num % i == 0)
		    {
				cnt++;
		        break;
		    }	
		}
		return cnt;
	}
}
Program to find Prime Number or not Using Function

输出 2

 Please Enter any : 242
242 is Not