您好,登錄后才能下訂單哦!
任何Java開發(fā)人員都需要回答的最常見問題之一就是如何用Java編寫素數(shù)程序。它是有關領先的高級通用編程語言的基本概念之一。
有幾種方法可以用Java編寫程序來檢查數(shù)字是否為質數(shù)。但是,基本邏輯保持不變,即您需要檢查輸入的數(shù)字(或已在程序中定義的數(shù)字)是否具有除1以外的除數(shù),以及除數(shù)本身是否具有除數(shù)。
素數(shù)程序是學習Java必不可少的部分。因此,大多數(shù)有關Java的書籍都對此進行了介紹。在繼續(xù)討論Java中的質數(shù)程序之前,讓我們首先了解質數(shù)的概念及其重要性。
除自身以外只能被1除的任何數(shù)字稱為主要數(shù)字。3、5、23、47、241、1009都是素數(shù)的示例。雖然0和1不能滿足質數(shù)的要求,但是2是整個無限長質數(shù)集中唯一的偶數(shù)質數(shù)。
質數(shù)表現(xiàn)出許多奇數(shù)的數(shù)學性質,這使它們成為廣泛應用的理想選擇,其中許多應用屬于信息技術領域。例如,質數(shù)可用于偽隨機數(shù)生成器和計算機哈希表。
在使用加密技術來隱藏信息的歷史中,有很多實例。令人驚訝的是,這是使用質數(shù)對信息進行編碼的過程。
隨著計算機的引入,現(xiàn)代加密技術也被引入。生成復雜且更長的代碼變得非常可行,這些代碼很難破解。
大多數(shù)現(xiàn)代計算機密碼學都依賴于利用大量的主要因素。由于質數(shù)是整數(shù)的基石,因此它們對數(shù)論家也至關重要。
進一步了解素數(shù)在IT安全中的重要性。
如前所述,有幾種方法可以用Java實現(xiàn)素數(shù)程序。在本節(jié)中,我們將研究三種獨立的方法以及另外兩個用于打印素數(shù)的程序。
這是在Java中實現(xiàn)用于檢查數(shù)字是否為質數(shù)的程序的最簡單方法之一。它不需要任何輸入,只需告訴定義的數(shù)字(通過整數(shù)變量n)是否為質數(shù)即可。代碼如下:
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是質數(shù)。
此Java代碼演示了使用方法的素數(shù)程序的實現(xiàn)。與前面提到的程序一樣,它不要求任何用戶輸入,并且僅對輸入到程序中已定義方法(名為checkPrime)的數(shù)字起作用。這是代碼:
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不是質數(shù)。
3是質數(shù)。
17是質數(shù)。
20不是質數(shù)。
該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;
}
}
)
輸入數(shù)字:22
22不是質數(shù)。
此代碼將演示一個Java程序,該程序能夠打印1到100之間存在的所有素數(shù)。該程序的代碼為:
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之間的質數(shù)為:
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
此Java程序將打印介于1和n之間的所有素數(shù),其中n是用戶輸入的數(shù)字。這是代碼:
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);
}
}
輸出:
輸入數(shù)字:22
1至22之間的質數(shù)為:
2 3 5 7 11 13 17 19
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。