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

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

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

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

質(zhì)數(shù),又稱素數(shù),指在一個大于1的自然數(shù)中,除了1和此整數(shù)自身外,無法被其他自然數(shù)整除的數(shù)(也可定義為只有1和本身兩個因數(shù)的數(shù))。
最小的素數(shù)是2,也是素數(shù)中唯一的偶數(shù);其他素數(shù)都是奇數(shù)。質(zhì)數(shù)有無限多個,所以不存在最大的質(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ī)律(摘自一個論壇討論)

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

package test.ms;

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

public class Primes {
		 
	  public static void main(String[] args) {
	  	
	    // 求素數(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)的所有素數(shù)
	   *
	   * @param n 范圍
	   *
	   * @return n 以內(nè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 包含素數(shù)的列表
	   *
	   * @return 如果 n 能被 primes 中任何一個整除,則返回 true。
	   */
	  private static boolean divisible(int n, List<Integer> primes) {
	    for (Integer prime : primes) {
	      if (n % prime == 0) {
	        return true;
	      }
	    }
	    return false;
	  }
	}

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

相關(guān)文章

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

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

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

    Java CountDownLatch與CyclicBarrier及Semaphore使用教程

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

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

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

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

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

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

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

    java編程scanner類用法示例

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

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

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

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

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

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

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

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

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

最新評論

阜康市| 莱芜市| 海口市| 洛南县| 昌邑市| 阿坝县| 旅游| 孟津县| 彰化市| 临沂市| 聊城市| 德江县| 高阳县| 成安县| 论坛| 屏山县| 讷河市| 定襄县| 久治县| 沛县| 永定县| 六盘水市| 若尔盖县| 西贡区| 潼关县| 连山| 湘阴县| 蓬溪县| 扬州市| 牙克石市| 宁晋县| 彩票| 财经| 威远县| 旬阳县| 五指山市| 平凉市| 泰兴市| 新乡县| 通山县| 新化县|