package PrimeNumbers;
import java.util.List;
import java.util.Scanner;
/** * 素?cái)?shù)求解,素?cái)?shù):質(zhì)數(shù)又稱素?cái)?shù)。一個(gè)大于1的自然數(shù),除了1和它自身外,不能被其他自然數(shù)整除的數(shù)叫做質(zhì)數(shù);否則稱為合數(shù)。
?* * @author min * */
public class PrimeNumbersDemo {public static void main(String[] args) {
Scanner scanner = new Scanner(System.in) ;
System.out.println("Find all numbers <=n, enter n=");
int n = scanner.nextInt() ;
final int NUMBER_PER_LINE = 10 ; //一行中展現(xiàn)10個(gè)數(shù)
int count = 0 ; //計(jì)素?cái)?shù)的總數(shù)
int number = 2 ; //給定第一個(gè)素?cái)?shù)
int squareRoot = 1 ; //查找number<=squareRoot ? //方法二所要用
System.out.println("The Prime Number are:");
/* ?方法一:
//尋找素?cái)?shù)
while(number <= n) {?
?//假設(shè)isPrime是true
boolean isPrime = true ;?
?//測(cè)試數(shù)是否為素?cái)?shù)
for(int divistor = 2 ;divistor <=(int)(Math.sqrt(number));divistor++) {
if(number %divistor == 0) {
isPrime = false ;break ;
}
}
*/
//方法二:
java.util.Listlist = new java.util.ArrayList();
while(number <=n) {
boolean isPrime = true ;
if(squareRoot*squareRoot
//打印素?cái)?shù)并增加數(shù)
if(isPrime) {
count++;
list.add(number);
if(count % NUMBER_PER_LINE ==0) {
System.out.printf("%7d\n",number);
}
else
System.out.printf("%7d",number);
}
//檢查下一個(gè)數(shù)是否為素?cái)?shù)
number ++ ;
}
System.out.println("\n" + count + "prime less than or equal to" +n);
}
}
--------------------------------------------------------------
運(yùn)行結(jié)果: