2020 咱们用Java写素数程序

在这里插入图片描述任何Java开发人员都须要回答的最多见问题之一就是如何用Java编写素数程序。它是有关领先的高级通用编程语言的基本概念之一。java

有几种方法能够用Java编写程序来检查数字是否为质数。可是,基本逻辑保持不变,即您须要检查输入的数字(或已在程序中定义的数字)是否具备除1之外的除数,以及除数自己是否具备除数。编程

素数程序是学习Java必不可少的部分。所以,大多数有关Java的书籍都对此进行了介绍。在继续讨论Java中的质数程序以前,让咱们首先了解质数的概念及其重要性。安全

质数–定义和重要性

除自身之外只能被1除的任何数字称为主要数字。三、五、2三、4七、24一、1009都是素数的示例。虽然0和1不能知足质数的要求,可是2是整个无限长质数集中惟一的偶数质数。编程语言

质数表现出许多奇数的数学性质,这使它们成为普遍应用的理想选择,其中许多应用属于信息技术领域。例如,质数可用于伪随机数生成器和计算机哈希表。ide

在使用加密技术来隐藏信息的历史中,有不少实例。使人惊讶的是,这是使用质数对信息进行编码的过程。学习

随着计算机的引入,现代加密技术也被引入。生成复杂且更长的代码变得很是可行,这些代码很难破解。编码

大多数现代计算机密码学都依赖于利用大量的主要因素。因为质数是整数的基石,所以它们对数论家也相当重要。加密

进一步了解素数在IT安全中重要性3d

Java素数程序

如前所述,有几种方法能够用Java实现素数程序。在本节中,咱们将研究三种独立的方法以及另外两个用于打印素数的程序。code

类型1 –一个简单的程序,不提供输入

这是在Java中实现用于检查数字是否为质数的程序的最简单方法之一。它不须要任何输入,只需告诉定义的数字(经过整数变量n)是否为质数便可。代码以下:

public class PrimeCheck{
public static void main(String args[]){
int i,m=0,flag=0;
int n=3;
m=n/2;
if(n==0||n==1){
System.out.println(n+" is not a prime number.");
}
else{
for(i=2;i<=m;i++){
if(n%i==0){
System.out.println(n+" is not a prime number.");
flag=1;
break;
}
}
if(flag==0) { System.out.println(n+" is a prime number."); }
}
}
}

输出:

3是质数。

类型2 – Java使用方法的程序(无需用户输入)

此Java代码演示了使用方法的素数程序的实现。与前面提到的程序同样,它不要求任何用户输入,而且仅对输入到程序中已定义方法(名为checkPrime)的数字起做用。这是代码:

public class PrimeCheckUsingMethod{
static void checkPrime(int n){
int i,m=0,flag=0;
m=n/2;
if(n==0||n==1){
System.out.println(n+" is not a prime number.");
}else{
for(i=2;i<=m;i++){
if(n%i==0){
System.out.println(n+" is not a prime number.");
flag=1;
break;
}
}
if(flag==0) { System.out.println(n+" is a prime number."); }
}
}
public static void main(String args[]){
checkPrime(1);
checkPrime(3);
checkPrime(17);
checkPrime(20);
}
}

输出:

1不是质数。
3是质数。
17是质数。
20不是质数。

类型3 – Java使用方法的程序(须要用户输入)

该Java程序相似于上述程序。可是,此程序提示用户输入。代码以下:

import java.util.Scanner;
import java.util.Scanner;
public class PrimeCheckUsingMethod2 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("Enter a number: ");
int n = s.nextInt();
if (isPrime(n)) {
System.out.println(n + " is a prime number.");
} else {
System.out.println(n + " is not a prime number.");
}
}
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i < Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
)

输入数字:22
22不是质数。

Type 4 –用Java打印从1到100的素数的程序

此代码将演示一个Java程序,该程序可以打印1到100之间存在的全部素数。该程序的代码为:

class PrimeNumbers
{
public static void main (String[] args)
{
int i =0;
int num =0;
String primeNumbers = "";
for (i = 1; i <= 100; i++)
{
int counter=0;
for(num =i; num>=1; num--)
{
if(i%num==0)
{
counter = counter + 1;
}
}
if (counter ==2)
{
primeNumbers = primeNumbers + i + " ";
}
}
System.out.println("Prime numbers between 1 and 100 are :"\n);
System.out.println(primeNumbers);
}
}

输出:

1到100之间的质数为:
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

Type 5 –用Java打印从1到n的素数的程序(用户输入)

此Java程序将打印介于1和n之间的全部素数,其中n是用户输入的数字。这是代码:

import java.util.Scanner;
class PrimeNumbers2
{
public static void main (String[] args)
{
Scanner scanner = new Scanner(System.in);
int i =0;
int num =0;
String primeNumbers = "";
System.out.println("Enter a number:");
int n = scanner.nextInt();
scanner.close();
for (i = 1; i <= n; i++)
{
int counter=0;
for(num =i; num>=1; num--)
{
if(i%num==0)
{
counter = counter + 1;
}
}
if (counter ==2)
{
primeNumbers = primeNumbers + i + " ";
}
}
System.out.println("Prime numbers between 1 and n are:"/n);
System.out.println(primeNumbers);
}
}

输出:

输入数字:22

1至22之间的质数为:
2 3 5 7 11 13 17 19

完成!

个人原文章
http://bjbsair.com/2020-03-09/ai/1912/

相关文章
相关标签/搜索