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