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

Java實(shí)現(xiàn)求小于n的質(zhì)數(shù)的3種方法

 更新時(shí)間:2015年03月28日 09:54:40   投稿:junjie  
這篇文章主要介紹了Java實(shí)現(xiàn)求小于n的質(zhì)數(shù)的3種方法,本文給出了根據(jù)定義去求解、平方根、找規(guī)律三種解法,需要的朋友可以參考下

質(zhì)數(shù)概念

質(zhì)數(shù),又稱素?cái)?shù),指在一個(gè)大于1的自然數(shù)中,除了1和此整數(shù)自身外,無(wú)法被其他自然數(shù)整除的數(shù)(也可定義為只有1和本身兩個(gè)因數(shù)的數(shù))。
最小的素?cái)?shù)是2,也是素?cái)?shù)中唯一的偶數(shù);其他素?cái)?shù)都是奇數(shù)。質(zhì)數(shù)有無(wú)限多個(gè),所以不存在最大的質(zhì)數(shù)。

一:根據(jù)定義去求解:
也是最笨的方式,效率比較低:

package test.ms;

public class FindPrime {
	 // find the prime  between 1 to 1000;
	public static void main(String[] args) {
		 printPrime(1000);
	}
	public static void  printPrime(int n){
		
		for(int i = 2; i < n ; i++){
			
			int count = 0;
			
			for(int j = 2 ; j<=i; j++){
				
				if(i%j==0){
					count++;
				}
				if(j==i & count == 1){
					System.out.print(i+" ");
				}
				if(count > 1){
					break;
				}
			}
			
			
		}
		
	}

}

2:平方根:

package test.ms;

public class Prime { 
	
	public static void main(String[] args) {
		
		for(int j = 2; j<1000; j++){
			if(m(j)){
				System.out.print(j+" ");
			}
		}
	}
	
	public static boolean  m(int num){
	
		for(int j = 2; j<=Math.sqrt(num);j++){
			if(num%j == 0){
				return false;
			}
		}
		
		return true;
	}

}

3:找規(guī)律(摘自一個(gè)論壇討論)

最小的素?cái)?shù)是2,也是素?cái)?shù)中唯一的偶數(shù);其他素?cái)?shù)都是奇數(shù)。質(zhì)數(shù)有無(wú)限多個(gè),所以不存在最大的質(zhì)數(shù)。

package test.ms;

import java.util.ArrayList;
import java.util.List;

public class Primes {
		 
	  public static void main(String[] args) {
	  	
	    // 求素?cái)?shù)
	    List<Integer> primes = getPrimes(1000);
	 
	    // 輸出結(jié)果
	    for (int i = 0; i < primes.size(); i++) {
	      Integer prime = primes.get(i);
	      System.out.printf("%8d", prime);
	      if (i % 10 == 9) {
	        System.out.println();
	      }
	    }
	  }
	 
	  /**
	   * 求 n 以內(nèi)的所有素?cái)?shù)
	   *
	   * @param n 范圍
	   *
	   * @return n 以內(nèi)的所有素?cái)?shù)
	   */
	  private static List<Integer> getPrimes(int n) {
	    List<Integer> result = new ArrayList<Integer>();
	    result.add(2);
	 
	    for (int i = 3; i <= n; i += 2) {
	      if (!divisible(i, result)) {
	        result.add(i);
	      }
	    }
	 
	    return result;
	  }
	 
	  /**
	   * 判斷 n 是否能被整除
	   *
	   * @param n   要判斷的數(shù)字
	   * @param primes 包含素?cái)?shù)的列表
	   *
	   * @return 如果 n 能被 primes 中任何一個(gè)整除,則返回 true。
	   */
	  private static boolean divisible(int n, List<Integer> primes) {
	    for (Integer prime : primes) {
	      if (n % prime == 0) {
	        return true;
	      }
	    }
	    return false;
	  }
	}

第一種和第二種都是很簡(jiǎn)單的方法:
第三種方法說(shuō)明了一個(gè)質(zhì)數(shù)的特性:在所有質(zhì)數(shù)中,只有2是偶數(shù)。
如果一個(gè)數(shù)能夠被它之前的質(zhì)數(shù)整除,那么這個(gè)數(shù)不是質(zhì)數(shù)。

相關(guān)文章

  • 解析Nacos的API居然存在這么嚴(yán)重的漏洞

    解析Nacos的API居然存在這么嚴(yán)重的漏洞

    這篇文章主要介紹了Nacos的API居然存在這么嚴(yán)重的漏洞,Nacos為我們提供了大量API,但是這些API默認(rèn)是沒(méi)有開(kāi)啟認(rèn)證的,直接可以訪問(wèn),針對(duì)于這一點(diǎn)我們也都可以去驗(yàn)證一下,本文給大家詳細(xì)講解,感興趣的朋友跟隨小編一起看看吧
    2022-09-09
  • Java CountDownLatch與CyclicBarrier及Semaphore使用教程

    Java CountDownLatch與CyclicBarrier及Semaphore使用教程

    對(duì)于并發(fā)執(zhí)行,Java中的CountDownLatch是一個(gè)重要的類。為了更好的理解CountDownLatch這個(gè)類,本文將通過(guò)例子和源碼帶領(lǐng)大家深入解析CountDownLatch與CyclicBarrier及Semaphore的原理,感興趣的可以學(xué)習(xí)一下
    2023-01-01
  • 淺談Java中父類與子類的加載順序詳解

    淺談Java中父類與子類的加載順序詳解

    本篇文章是對(duì)Java中父類與子類的加載順序進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • java各種類型對(duì)象占用內(nèi)存情況分析

    java各種類型對(duì)象占用內(nèi)存情況分析

    這篇文章主要介紹了java各種類型對(duì)象占用內(nèi)存情況分析,對(duì)內(nèi)存或者性能優(yōu)化感興趣的同學(xué),一定要看一下
    2021-04-04
  • java 實(shí)現(xiàn) stack詳解及實(shí)例代碼

    java 實(shí)現(xiàn) stack詳解及實(shí)例代碼

    這篇文章主要介紹了java 實(shí)現(xiàn) stack詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • java編程scanner類用法示例

    java編程scanner類用法示例

    這篇文章主要介紹了java編程scanner類用法示例,涉及一個(gè)通過(guò)scanner類實(shí)現(xiàn)需要手動(dòng)輸入變量時(shí)進(jìn)行輸入的實(shí)例,然后分享了一個(gè)簡(jiǎn)單的eclipse對(duì)Java代碼格式化的技巧,具有一定借鑒價(jià)值,需要的朋友可以參考。
    2017-11-11
  • java實(shí)現(xiàn)列表、集合與數(shù)組之間轉(zhuǎn)化的方法

    java實(shí)現(xiàn)列表、集合與數(shù)組之間轉(zhuǎn)化的方法

    這篇文章主要介紹了java實(shí)現(xiàn)列表、集合與數(shù)組之間轉(zhuǎn)化的方法,涉及java中列表、集合與數(shù)組相互轉(zhuǎn)換的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • tomcat啟動(dòng)完成執(zhí)行 某個(gè)方法 定時(shí)任務(wù)(Spring)操作

    tomcat啟動(dòng)完成執(zhí)行 某個(gè)方法 定時(shí)任務(wù)(Spring)操作

    這篇文章主要介紹了tomcat啟動(dòng)完成執(zhí)行 某個(gè)方法 定時(shí)任務(wù)(Spring)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • java對(duì)象與json對(duì)象之間互相轉(zhuǎn)換實(shí)現(xiàn)方法示例

    java對(duì)象與json對(duì)象之間互相轉(zhuǎn)換實(shí)現(xiàn)方法示例

    這篇文章主要介紹了java對(duì)象與json對(duì)象之間互相轉(zhuǎn)換實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了java對(duì)象與json對(duì)象相互轉(zhuǎn)換實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • JAVA多線程之JDK中的各種鎖詳解(看這一篇就夠了)

    JAVA多線程之JDK中的各種鎖詳解(看這一篇就夠了)

    多線程編程可以說(shuō)是在大部分平臺(tái)和應(yīng)用上都需要實(shí)現(xiàn)的一個(gè)基本需求,下面這篇文章主要給大家介紹了關(guān)于JAVA多線程之JDK中各種鎖的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07

最新評(píng)論

兴仁县| 赣州市| 马关县| 台安县| 武定县| 高陵县| 阿克陶县| 万载县| 峡江县| 靖安县| 阜阳市| 吴江市| 伊金霍洛旗| 隆化县| 南宫市| 萨迦县| 翁源县| 姜堰市| 阿瓦提县| 南华县| 枞阳县| 盐山县| 南岸区| 北安市| 乌审旗| 罗平县| 合肥市| 镇巴县| 都匀市| 南充市| 和龙市| 伊宁县| 莱州市| 永和县| 韩城市| 修水县| 大荔县| 通化县| 双牌县| 镇原县| 忻州市|