国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

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

2019-11-26 15:14:38
字體:
來源:轉載
供稿:網(wǎng)友

質數(shù)概念

質數(shù),又稱素數(shù),指在一個大于1的自然數(shù)中,除了1和此整數(shù)自身外,無法被其他自然數(shù)整除的數(shù)(也可定義為只有1和本身兩個因數(shù)的數(shù))。
最小的素數(shù)是2,也是素數(shù)中唯一的偶數(shù);其他素數(shù)都是奇數(shù)。質數(shù)有無限多個,所以不存在最大的質數(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ù)。質數(shù)有無限多個,所以不存在最大的質數(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);	 	    // 輸出結果	    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 以內的所有素數(shù)	   *	   * @param n 范圍	   *	   * @return n 以內的所有素數(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;	  }	}

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 霸州市| 蒙自县| 清水河县| 夏河县| 阳泉市| 根河市| 苗栗市| 扶绥县| 霍邱县| 府谷县| 宁安市| 沂南县| 峨眉山市| 稷山县| 苍南县| 老河口市| 农安县| 福建省| 喀喇| 定日县| 怀集县| 江源县| 南召县| 台安县| 交城县| 牟定县| 喀喇沁旗| 沁阳市| 江北区| 兴山县| 砚山县| 海淀区| 阜新| 酒泉市| 区。| 溆浦县| 闻喜县| 平昌县| 新平| 乡宁县| 油尖旺区|