Java 程序:寻找质数
原文:https://www.studytonight.com/java-programs/java-program-to-find-prime-number
如果一个数只能被它自己和一整除,它就叫做质数。这意味着质数只有两个因素一和它本身。
一个数如果有两个以上的因子,就叫做合成数。
这里需要注意的一点是,1 既不是素数,也不是合数。
一个数是质数的条件:
它应该大于 1。
应该不会超过 2 个因素。
这些是第一批素数:{2,3,5,7,11,....}.
在本教程中,我们将学习如何在 java 中找到素数。但是在继续之前,如果你不熟悉 java 中循环的概念,那么一定要查看关于 Java 中循环的文章
输入:输入数字:34
输出: 34 不是素数。
程序 1:在 Java 中寻找质数
在这个程序中,我们将使用一个从 2 到这个数的平方根的 for 循环来检查输入的数是否是质数。
算法:
开始
创建 Scanner 类的实例。
声明一个变量。
要求用户初始化变量。
调用一个方法来检查输入的数字是否是质数。
如果数字是 0 或 1,打印它不是质数。
如果数字不是 0 和 1,则运行从 2 到该数字平方根的 for 循环。
如果这个数可以被那个循环中的任何一个数整除,那么就把它打印成不是质数。
如果这个数不能被循环中的任何一个数整除,那么就把它打印成质数。
停下来。
下面是查找质数的 Java 代码。
// Program to find prime number in Java
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter a number : ");
int num = sc.nextInt();
if (checkPrime(num)) {
System.out.println(num + " is a prime number");
}
else
{
System.out.println(num + " is not a prime number");
}
}
public static boolean checkPrime(int num)
{
if (num <= 1)
{
return false;
}
for (int i = 2; i < Math.sqrt(num); i++)
{
if (num % i == 0)
{
return false;
}
}
return true;
}
}
输入一个数字:245 245 不是质数
程序 2:在 Java 中寻找质数
在这个程序中,我们将使用从 2 到数字/2 的 for 循环来检查输入的数字是否是质数。
算法:
开始
创建 Scanner 类的实例。
声明一个变量。
要求用户初始化变量。
如果数字是 0 或 1,打印它不是质数。
如果数字不是 0 和 1,则运行从 2 到数字/2 的 for 循环。
如果这个数可以被那个循环中的任何一个数整除,那么就把它打印成不是质数。
如果这个数不能被循环中的任何一个数整除,那么就把它打印成质数。
停下来。
下面是查找质数的 Java 代码。
// Program to find prime number in Java
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
//Take input from the user
//Create instance of the Scanner class
Scanner sc = new Scanner(System.in);
System.out.println("Enter a number : ");
int num = sc.nextInt();
int flag=0;
int i, temp=num/2;
if(num==0||num==1)
{
System.out.println(num+" is not prime number");
}
else
{
for(i=2;i<=temp;i++)
{
if(num%i==0)
{
System.out.println(num+" is not a prime number");
flag=1;
break;
}
}
if(flag==0)
{
System.out.println(num+" is a prime number");
}
}//end of else
}
}
输入数字:29 29 是质数
Java 程序:程序 3:寻找质数
在这个程序中,我们将使用递归来检查一个数是否是质数。
算法:
开始
创建 Scanner 类的实例。
声明一个变量。
要求用户初始化变量。
使用递归函数检查数字是否为质数。
递归调用该函数来检查该数是否可被任何其他数整除。
如果这个数不能被除 1 和它本身之外的任何其他数整除,那么就把它打印成质数。
否则打印输入的数字不是质数。
停下来。
下面是查找质数的 Java 代码。
// Program to find prime number in Java using recursion
import java.util.Scanner;
public class Main
{
static int i=2;
public static void main(String[] args)
{
//Take input from the user
//Create instance of the Scanner class
Scanner sc = new Scanner(System.in);
System.out.println("Enter the number: ");
int num = sc.nextInt();
if (checkPrime(num))
{
System.out.print(num+" is a prime number ");
}
else
{
System.out.println(num+" is not a prime number ");
}
}
static boolean checkPrime(int num)
{
// Corner cases
if (num == 0 || num == 1)
{
return false;
}
// Checking Prime
if (num == i)
return true;
// Base cases
if (num % i == 0)
{
return false;
}
i++;
return checkPrime(num);
}
}
输入数字:57 57 不是质数