只有1和它本身兩個正因數的自然數,叫質數(PRime Number)。
(如:由2÷1=2,2÷2=1,可知2的因數只有1和它本身2這兩個約數,所以2就是質數。
與之相對立的是合數:“除了1和它本身兩個因數外,還有其它因數的數,叫合數。
”如:4÷1=4,4÷2=2,4÷4=1,很顯然,4的因數除了1和它本身4這兩個因數以外,還有因數2,所以4是合數。)100以內的質數有:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,在100內共有25個質數。注:
(1)1既不是質數也不是合數。因為它的約數有且只有1這一個因數。(2)2和3是所有素數中唯一兩個連著的數。(3)2是唯一一個為偶數的質數。
下面用java實現打印出1到100內的所有質素:
/** * */package com.b510.parmnumber;/** * 質數又稱素數。指在一個大于1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數 * @author hongten(hongtenzone@Foxmail.com)<br> * @date 2013-5-22 */public class MyMethod { public static void main(String[] args) { int result = getTimes(); System.out.println("100以內的質素有 ["+result+"]個!"); } /** * 獲取質素的個數 * @return */ public static int getTimes(){ int result = 0; for (int i = 2, j = 0; i <= 100; i++) { if (prime(i)) { System.out.printf("%5d", i); j++; if (j % 5 == 0 && j != 0) { System.out.println(); } } result = j; } return result; } /** * 判斷是否為素數的方法 * * @param num * @return */ public static boolean prime(int num) { //2本身是質素,所以這里需要首先判斷 if (num == 2) return true; boolean flag = true; //如果當num大于2的時候,循環2到(num-1),如果在循環過程中 //有被num整除的數,說明num不是質素 for (int m = 2; m <= (num - 1); m++) { if (num % m == 0) { flag = false; break; } } return flag; }}
新聞熱點
疑難解答