java質數,java質數判斷代碼

本文目錄一覽:

java判斷質數

不知道你要的是不是這種效果,程序在你的基礎上做了一些修改,在你的基礎上增加了假如輸入的不是一個數時做什麼處理,輸入“back”時返回,你可以拿去把程序修改的更完善。。你說的方法都可以調用,在 main方法裡面需要new一個對象來調用,除非你把方法定義為靜態方法(static)。。

import java.util.Scanner;

public class Prime_Decide {

public void isPrime(String st) { // 判斷int整形a是否是素數

try {

if (st.equals(“back”)) {

Display();

} else {

int a, i;

a = Integer.parseInt(st);

for (i = 2; i = a / 2; i++) {

if (a % i == 0) {

break;

}

}

if (a == 0) {

System.out.println(a + ” 你輸入的數不是素數”);

} else if (i a / 2) {

System.out.println(a + ” 你輸入的數是素數”);

} else {

System.out.println(a + ” 你輸入的數不是素數”);

}

Input1();

}

} catch (NumberFormatException e1) {

System.out.println(“請你輸入正確的數字!!!”);

Input1();

}

}

public void isPrime_2(String s1, String s2) {

try {

if (s1.equals(“back”)) {

Display();

} else {

int a = Integer.parseInt(s1);

int b = Integer.parseInt(s2);

if (a 0 a == b a b) {

System.out.println(“你的輸入有誤,重新輸入:”);

}

int j;

for (int i = a; i = b; i++) {

for (j = 2; j = i / 2; j++) {

if (i % j == 0) {

break;

}

}

if (j i / 2) {

System.out.println(” ” + i + ” 是素數”);

}

}

Input2();

}

} catch (NumberFormatException e) {

System.out.println(“請你輸入正確的數字!!”);

Input2();

}

}

public void Input1() {

System.out.println(“請輸入你要進行判斷的數:”);

Scanner sc = new Scanner(System.in);

String st = sc.nextLine();

isPrime(st);

}

public void Input2() {

// int a, b;

System.out.println(“請輸入上界 a= “);

Scanner sc = new Scanner(System.in);

// a = Integer.parseInt(sc.nextLine());

System.out.println(“請輸入下屆 b=”);

Scanner st = new Scanner(System.in);

// b = Integer.parseInt(st.nextLine());

isPrime_2(sc.nextLine(), st.nextLine());

}

public void Display() {

System.out.println(“請輸入你要進行的數的判斷:\n1: 單個數的判斷\n2: 一段整數範圍的判斷\n3: 退出”);

try {

Scanner sc = new Scanner(System.in);

int c = Integer.parseInt(sc.nextLine());

if (c == 1) {

Input1();

} else if (c == 2) {

Input2();

} else if (c == 3) {

System.exit(1);

} else if (c != 1 c != 2 c != 3) {

System.out.println(“你輸入如的信息有誤,請重新輸入1、2、3!”);

Display();

}

} catch (NumberFormatException e) {

System.out.println(“你輸入如的信息有誤,請重新輸入1、2、3!”);

Display();

}

}

public static void main(String[] args) {

Prime_Decide pr = new Prime_Decide();

pr.Display();

}

}

希望對你有幫助!!

java怎樣判斷一個數是不是質數

由於大於2的質數一定是奇數(奇數又不一定都是質數),所以,在判斷一個自然數是不是質數時,首先要看它是奇數還是偶數。如果是大於2的偶數,這個數肯定不是質數,而是合數;如果是奇數,那就有可能是質數。在這種情況下,一般使用以下兩種方法:

(1)查表法:

主要是指查“質數表”。編製質數表的過程是:按照自然數列,第一個數1不是質數,因此要除外,然後按順序寫出2至500的所有自然數,這些數中2是質數,把它留下,把2後面所有2的倍數划去,2後面的3是質數,接着再把3後面所有3的倍數划去,如此繼續下去,剩下的便是500以內的全部質數。

最早使用上述方法來尋求質數的人,是古代希臘數學家埃拉托斯特尼,由於他在開始時,先把自然數寫在一塊蠟板上,把不是質數的數(合數)分別刺上一個孔,這樣,在蠟板上就被刺上了許多象篩子一樣的孔,後來,大家就把這種尋求質數的方法叫做“篩法”。

這類的質數表還可以編製成數字範圍更大一些的,如1000以內質數表等。判斷一個自然數是不是質數,如在表所規定的數字範圍內,即可用查表的方法進行判斷。

(2)試除法:

在手頭上沒有質數表的情況下,可以用試除法來判斷一個自然數是不是質數。例如判斷143、179是不是質數,就可以按從小到大的順序用2、3、5、7、11……等質數去試除。一般情況下用20以內的2、3、5、7、11、13、17、19這8個質數去除就可以了。如143,這個數的個位是3,排除了被2、5整除的可能性,它各位數字的和是1+4+3=8,也不可能被3整除,通過口算也證明不能被7整除,當試除到11時,商正好是13,到此就可以斷定143不是質數。

對179試除過程如下:

179÷2=59……2

179÷3=66……1

179÷5=35……4

179÷7=25……4

179÷11=16……3

179÷13=13……10

179÷17=10……9

當179÷17所得到的不完全商10比除數17小時,就不需要繼續再試除,而斷定179是質數。這是因為2、3、5、7、11、13、17都不是179的質因數,因此,179不會再有比17大的質因數,或者說179不可能被小於10的數整除,所以,179必是質數無疑。

綜上所述,用試除法判斷一個自然數a是不是質數時,只要用各個質數從小到大依次去除a,如果到某一個質數正好整除,這個a就可以斷定不是質數;如果不能整除,當不完全商又小於這個質數時,就不必再繼續試除,可以斷定a必然是質數。

java 1到100內的質數

int i,j;

for(i = 2; i = 100; i++){//從2數到100,判斷之間的每一個數是否是質數

//下面的循環是質數判斷過程

for(j = 2; j = i/2; j++){

if(i % j == 0)

break;//如果這個數能被一個數整除,那麼這個數不是質數。break的作用是跳出此次循環,進入下一次循環。

}

if(j i/2){

System.out.println(i);//如果這個數不能被自身1/2的數整除,他就是質數,輸出這個數.System.out.println()這個語句就是輸出語句

}

}

System.out.println();//這句語句是多餘的,什麼也沒打印。

完整代碼及運行結果如圖。

拓展資料

質數(prime number)又稱素數,有無限個。質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數。

這道題只要理解質數的計算方法就容易解答。

原創文章,作者:FOKR,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/134439.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
FOKR的頭像FOKR
上一篇 2024-10-04 00:05
下一篇 2024-10-04 00:06

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變量和數…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29

發表回復

登錄後才能評論