最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中判斷素?cái)?shù)的五種有效方法

 更新時(shí)間:2026年01月07日 08:28:17   作者:AaronYu_  
本文介紹了五種在Java中判斷素?cái)?shù)的有效方法,包括從2到x-1測(cè)試、排除偶數(shù)、僅測(cè)試到sqrt(x),以及使用素?cái)?shù)表和計(jì)算機(jī)思維方式的高級(jí)策略,文章詳細(xì)解釋了每種方法的時(shí)間復(fù)雜度和實(shí)現(xiàn)細(xì)節(jié),需要的朋友可以參考下

Java 中判斷素?cái)?shù)我們有很多方法,每種方法時(shí)間復(fù)雜度也不一樣。今天我匯總了一下,分享給大家。既可以輸出前 50 或 n 個(gè)素?cái)?shù),也可以判斷 100 (或 n) 以?xún)?nèi)的素?cái)?shù)。

1. 從 2 到 x-1 測(cè)試是否可以整除

Scanner in = new Scanner(System.in);

int x = in.nextInt();
boolean isPrime = true;
if ( x == 1)
{
	isPrime = false;
}
for( int i = 2; i< x; i++)
{
	if(x % i ==0)
	{
		isPrime = false;
		break;
	}
}
if( isPrime)
{
	System.out.println(x +"是素?cái)?shù)");
	
}
else
{
	System.out.println(x+ "不是素?cái)?shù)");
}

2. 去掉偶數(shù)后,從 3 到 x-1, 每次加 2

改進(jìn)版,時(shí)間復(fù)雜度為 O(n/2)

if(x ==1 || x %2 ==0 && x !=2 )
{
	isPrime = false;
}
else
{
	for(int i =2; i<x; i +=2)
	{
		if( x % i == 0)
		{
			isPrime = false;
			break;
		}
	}
}
if( isPrime)
{
	System.out.println(x +"是素?cái)?shù)");
	
}
else
{
	System.out.println(x+ "不是素?cái)?shù)");
}

3. 2 方法上的改進(jìn)版,只需到 sqrt(x) 即可以

數(shù)學(xué)上可以證明,sqrt(x) 即 x 的平方根
時(shí)間復(fù)雜度為 O(sqrt(n))

if(x ==1 || x %2 ==0 && x !=2 )
{
	isPrime = false;
}
else 
{
	for( int i =3; i< Math.sqrt(x); i+=2)
	{
		if( x % i == 0)
		{
			isPrime = false;
			break;
		}
	}
}
if( isPrime)
{
	System.out.println(x +"是素?cái)?shù)");	
}
else
{
	System.out.println(x+ "不是素?cái)?shù)");
}

4. 找出前 50 個(gè)素?cái)?shù)

判斷是否能被已知的的且 <x 的素?cái)?shù)整除
這個(gè)方法可擴(kuò)展性很強(qiáng),建議掌握。

int [] primes = new int[50];
primes[0] =2;
int cnt =1;
Main:
for(int x= 3; cnt<primes.length; x++)
{
	for(int i = 0; i< cnt; i++)
	{
		if( x % primes[i] == 0)
		{
			continue Main;
		}
	}
	primes[cnt++] = x;
	
}
for ( int k: primes)
{
	System.out.print(k+ " ");
}

5. 用計(jì)算機(jī)的語(yǔ)言去思考

構(gòu)造素?cái)?shù)表,構(gòu)造 n 以?xún)?nèi)的素?cái)?shù)表

原理:

  1. 令 x =2;
  2. 將 2x、3x、4x 直至 ax<n 的數(shù)標(biāo)記為非素?cái)?shù)
  3. 令 x 為下一個(gè)沒(méi)有被標(biāo)記為非素?cái)?shù)的數(shù),重復(fù) 2;直至所有的數(shù)都已嘗試完畢。
boolean[] isPrime = new boolean[100];
for( int i =2; i< isPrime.length; i++)
{
	isPrime[i] = true;
}
for(int i =2; i<isPrime.length; i++)
{
	if( isPrime [i])
	{
		for(int k=2; i*k < isPrime.length; k++)
		{
			isPrime[i*k] = false;
		}
	}
}
for( int i = 0; i<isPrime.length; i++)
{
	if(isPrime[i])
	{
		System.out.print(i+ " ");
	}
}

好了,以上便是五種判斷素?cái)?shù)的方法,第四種和第五種方法要求掌握,相信你能很快學(xué)會(huì),一定一定要上手實(shí)操,debug 一下,你就懂了。

到此這篇關(guān)于Java中判斷素?cái)?shù)的五種有效方法的文章就介紹到這了,更多相關(guān)Java判斷素?cái)?shù)方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring中@ExceptionHandler注解的使用方式

    Spring中@ExceptionHandler注解的使用方式

    這篇文章主要介紹了Spring中@ExceptionHandler注解的使用方式,@ExceptionHandler注解我們一般是用來(lái)自定義異常的,可以認(rèn)為它是一個(gè)異常攔截器(處理器),需要的朋友可以參考下
    2024-01-01
  • Java+ElasticSearch+Pytorch實(shí)現(xiàn)以圖搜圖功能

    Java+ElasticSearch+Pytorch實(shí)現(xiàn)以圖搜圖功能

    這篇文章主要為大家詳細(xì)介紹了Java如何利用ElasticSearch和Pytorch實(shí)現(xiàn)以圖搜圖功能,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2023-06-06
  • Java字符串轉(zhuǎn)成二進(jìn)制碼的方法

    Java字符串轉(zhuǎn)成二進(jìn)制碼的方法

    這篇文章主要為大家詳細(xì)介紹了Java字符串轉(zhuǎn)成二進(jìn)制碼的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一
    2017-05-05
  • Java中冒泡排序的原生實(shí)現(xiàn)方法(正序與逆序)

    Java中冒泡排序的原生實(shí)現(xiàn)方法(正序與逆序)

    這篇文章主要給大家介紹了關(guān)于Java中冒泡排序的原生實(shí)現(xiàn)方法(正序與逆序)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 基于Spring AI+MySQL實(shí)現(xiàn)文件內(nèi)容相似度的簡(jiǎn)單檢測(cè)

    基于Spring AI+MySQL實(shí)現(xiàn)文件內(nèi)容相似度的簡(jiǎn)單檢測(cè)

    在做一個(gè) AI 求職的比賽項(xiàng)目中,遇到了一個(gè)有趣的需求:用戶上傳自己的簡(jiǎn)歷文件后,系統(tǒng)需要計(jì)算并返回該簡(jiǎn)歷與其他用戶簡(jiǎn)歷之間的相似度,想要實(shí)現(xiàn)這樣的功能,所以本文給大家分享了如何基于Spring AI+MySQL實(shí)現(xiàn)文件內(nèi)容相似度的簡(jiǎn)單檢測(cè),需要的朋友可以參考下
    2025-11-11
  • Java中的數(shù)組排序方式(快速排序、冒泡排序、選擇排序)

    Java中的數(shù)組排序方式(快速排序、冒泡排序、選擇排序)

    這篇文章主要介紹了Java中的數(shù)組排序方式(快速排序、冒泡排序、選擇排序),需要的朋友可以參考下
    2014-02-02
  • SpringBoot的@EnableAsync和@Async注解分析

    SpringBoot的@EnableAsync和@Async注解分析

    這篇文章主要介紹了SpringBoot的@EnableAsync和@Async注解分析,Spring Boot是一個(gè)快速開(kāi)發(fā)框架,可以幫助開(kāi)發(fā)人員快速構(gòu)建基于Spring的應(yīng)用程序,需要的朋友可以參考下
    2023-07-07
  • Java使用Unsafe類(lèi)的示例詳解

    Java使用Unsafe類(lèi)的示例詳解

    java不能直接訪問(wèn)操作系統(tǒng)底層,而是通過(guò)本地方法來(lái)訪問(wèn)。Unsafe類(lèi)提供了硬件級(jí)別的原子操作,這篇文章主要介紹了Java使用Unsafe類(lèi),需要的朋友可以參考下
    2021-09-09
  • SpringBoot實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源切換的方法總結(jié)

    SpringBoot實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源切換的方法總結(jié)

    項(xiàng)目開(kāi)發(fā)中經(jīng)常會(huì)遇到多數(shù)據(jù)源同時(shí)使用的場(chǎng)景,比如冷熱數(shù)據(jù)的查詢(xún)等情況,所以接下來(lái)本文就來(lái)介紹一下如何使用實(shí)現(xiàn)自定義注解的形式來(lái)實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源切換吧
    2023-12-12
  • springboot中的controller參數(shù)映射問(wèn)題小結(jié)

    springboot中的controller參數(shù)映射問(wèn)題小結(jié)

    這篇文章主要介紹了springboot中的controller參數(shù)映射問(wèn)題小結(jié),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-12-12

最新評(píng)論

六枝特区| 余干县| 台北县| 汽车| 东宁县| 张家港市| 旺苍县| 安顺市| 文成县| 潞城市| 平利县| 潍坊市| 杨浦区| 安化县| 咸阳市| 郎溪县| 连城县| 盘山县| 兴山县| 桂东县| 新建县| 灵寿县| 宜兰市| 阳西县| 来凤县| 汶川县| 永德县| 化州市| 沙洋县| 枞阳县| 巴林右旗| 弥勒县| 襄汾县| 富源县| 扶绥县| 基隆市| 河源市| 朝阳县| 淄博市| 精河县| 周口市|