利用java判斷質(zhì)數(shù)的3種方法代碼示例
方法一:質(zhì)數(shù)只能被1和它本身整除
import java.util.Scanner; public class Test { public static void main(String[] args) { int n = new Scanner(System.in).nextInt(); int i = 2; for (;i < n;i++){ if (n % i == 0){ System.out.println(n + "不是素?cái)?shù)"); break; } } //將2~(n-1)之間所有整數(shù)都除一遍,以確保其中沒(méi)有可以整除的數(shù) if (i == n){ System.out.println(n + "是素?cái)?shù)"); } } }
方法二:一個(gè)數(shù)總能寫成“n = a * b”的形式,a和b之間一定有一個(gè)數(shù)不大于n/2
import java.util.Scanner; public class Test { public static void main(String[] args) { int n = new Scanner(System.in).nextInt(); int i = 2; for (;i < n/2;i++){ if (n % i == 0){ System.out.println(n + "不是素?cái)?shù)"); break; } } //將2~(n/2)之間所有整數(shù)都除一遍,以確保其中沒(méi)有可以整除的數(shù) //每一個(gè)整數(shù)都可以看做有兩個(gè)數(shù)相乘得到,且每一個(gè)整數(shù)不會(huì)超過(guò)原整數(shù)的一半,除了原整數(shù)本身 if (i > n/2){ System.out.println(n + "是素?cái)?shù)"); } } }
方法三:每一個(gè)整數(shù)都可以看做由兩個(gè)數(shù)相乘得到,且每個(gè)乘數(shù)不大于原整數(shù)的平方根
import java.util.Scanner; public class Test { public static void main(String[] args) { int n = new Scanner(System.in).nextInt(); int i = 2; for (;i <= Math.sqrt(n);i++){ if (n % i == 0){ System.out.println(n + "不是素?cái)?shù)"); break; } } if (i > Math.sqrt(n)){ System.out.println(n + "是素?cái)?shù)"); } } }
附:判斷1-100所有數(shù)是否為質(zhì)數(shù)
實(shí)現(xiàn)代碼
public class Test5 { ? ? public static void main(String[] args) { ? ? ? ? System.out.println(2 + "這是質(zhì)數(shù)"); ? ? ? ? for (int i = 3; i <= 10; i++) { ? ? ? ? ? ? boolean flag = true; ? ? ? ? ? ? for (int j = 2; j < i; j++) { ? ? ? ? ? ? ? ? if (i % j == 0) { ? ? ? ? ? ? ? ? ? ? System.out.println(i + "這不是質(zhì)數(shù)"); ? ? ? ? ? ? ? ? ? ? flag = false; ? ? ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? ? } ? ? ? ? ? ? } ? ? ? ? ? ? if (flag) { ? ? ? ? ? ? ? ? System.out.println(i + "這是質(zhì)數(shù)"); ? ? ? ? ? ? } ? ? ? ? } ? ? } }
實(shí)現(xiàn)結(jié)果
總結(jié)
到此這篇關(guān)于利用java判斷質(zhì)數(shù)的3種方法的文章就介紹到這了,更多相關(guān)java判斷質(zhì)數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java+OpenCV實(shí)現(xiàn)圖片中的人臉識(shí)別
這篇文章主要介紹了如何利用java?opencv實(shí)現(xiàn)人臉識(shí)別功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03java long轉(zhuǎn)String +Codeforces110A案例
這篇文章主要介紹了java long轉(zhuǎn)String +Codeforces110A案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-09-09SpringMVC實(shí)現(xiàn)賬號(hào)只能在一處登陸
這篇文章主要為大家詳細(xì)介紹了SpringMVC如何實(shí)現(xiàn)賬號(hào)只能在一處登陸,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03Java實(shí)現(xiàn)獲取內(nèi)網(wǎng)的所有IP地址
這篇文章主要介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)獲取內(nèi)網(wǎng)的所有IP地址,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定的參考價(jià)值,快跟隨小編一起學(xué)習(xí)一下吧2022-06-06SpringBoot中shiro過(guò)濾器的重寫與配置詳解
在前后端分離跨域訪問(wèn)的項(xiàng)目中shiro進(jìn)行權(quán)限攔截失效 (即使有正確權(quán)限的訪問(wèn)也會(huì)被攔截) 時(shí)造成302重定向錯(cuò)誤等問(wèn)題,為解決這個(gè)問(wèn)題,就需要進(jìn)行shiro過(guò)濾器的重寫以及配置。本文詳細(xì)介紹了解決方法,需要的可以參考一下2022-04-04一個(gè)Servlet是如何處理多個(gè)請(qǐng)求的?
以前我一直以為一個(gè)Servlet只能處理一個(gè)請(qǐng)求,后來(lái)發(fā)現(xiàn)是自己太菜了,可以借助攜帶一個(gè)參數(shù)來(lái)完成多個(gè)請(qǐng)求的處理,根據(jù)參數(shù)的不同,在核心的service方法中調(diào)用不同的業(yè)務(wù)方法,來(lái)實(shí)現(xiàn)處理多個(gè)servlet請(qǐng)求的目的,廢話不多說(shuō),直接上代碼,需要的朋友可以參考下2021-06-06