本文目錄一覽:
怎樣用Java求1~10000中的所有質數最簡便的方法
運用java8新特性stream來解決
參考以下代碼
/**
* IntStream.range(1,10001) :獲取一個stream,是從1-10000的
* filter: 取出stream每個數字進行過濾,比如選取數字300,則再構造一個stream,從2-299,依次用300取餘2-299中的數,若有一個是整除,餘數為0的話,這個數字就不是我們要找的質數,跳過
* forEach:列印經過filter過濾後的stream中的每個數
*/
IntStream.range(1,10001).filter(outerInt- !IntStream.range(2,outerInt).anyMatch(innerInt-outerInt%innerInt==0))
.forEach(System.out::println);
java給定一個二維整數數組,找出其中的質數
public class PrimeNumber {
public static void main(String[] args) {
int[][] a=new int[][]{{7,12,4,9,6},{3,9,6,47,54}}; //新建二維數組
//用兩個循環來遍歷二維數組
for(int i=0;i2;i++){//數組有兩行
for(int j=0;j5;j++){//數組有5列
if (isPrime(a[i][j])) {// 調用isPrime()方法判斷數組的元素是否是質數
System.out.println(a[i][j]);// 若isPrime()方法返回true,輸出是素數
}
}
}
}
/**
* pre
* 用於判斷一個數是否為素數,若為素數,返回true,否則返回false
* /pre
*
* @param a
* 輸入的值
* @return true、false
*/
public static boolean isPrime(int a) {
boolean flag = true;
if (a 2) {// 素數不小於2
return false;
} else {
for (int i = 2; i = Math.sqrt(a); i++) {
if (a % i == 0) {// 若能被整除,則說明不是素數,返回false
flag = false;
break;// 跳出循環
}
}
}
return flag;
}
}
用JAVA語言求質數
程序如下,希望有所幫助
public class Prime {
//判斷質數
public static void isPrime(int num) {
int j = 2;
for (; j = Math.sqrt(num); j++) {
if (num % j == 0) {
System.err.println(num + “不是質數!”);
return;
}
}
if (j Math.sqrt(num)) {
System.err.println(num + “是質數!”);
return;
}
System.err.println(num + “不是質數!”);
return;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.err.println(“請輸入數字:”);
int num = sc.nextInt();//接收輸入
isPrime(num);//判斷是否為質數
}
}
java質數怎麼求100-200
public class PrimeNumber {
/**
* 質數,只能被1和自身整除
* @param args
*/
public static void main(String[] args) {
for (int i = 100; i = 200 ; i++) {
/*
標識位:true表示質數,false表示非質數
假定每個數一開始都是質數
*/
boolean flag = true;
for (int j = 2; j i ; j++) {
/*
從2開始除,只要餘數為0就表示這個數能被其他數整除
然後將標識位設置為false,然後跳出內層循環執行
*/
if (i % j == 0){
flag = false;
break;
}
}
/*
根據標識位來判定是否是質數,是的話就輸出
*/
if(flag){
System.out.println(“質數:” + i);
}
}
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/150468.html