java質數判斷/質數因子/所有質數(素數)*
阿新 • • 發佈:2019-01-06
1.質數(素數)數判斷:
boolean isPrime(int number) {
boolean isPrime = true;
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) {
isPrime = false;
}
}
return isPrime;
}
2.質數因子
3.某個整數內的所有質數 (某數如果是質數,他的整數倍一定不是質數,進行標記處理)import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); int num=sc.nextInt(); sc.close(); int tmp=1; boolean isfirst=true; while(tmp<=num) { int i=2; while(tmp*i<=num&&num%(tmp*i)!=0) { i++; } tmp=tmp*i; if(tmp<=num) { if(!isfirst) { System.out.print(" "); } else { isfirst=false; } System.out.print(i); } } } }
import java.util.Scanner; public class test{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); sc.close(); int[] flag=new int[n];//標誌陣列 //從2開始遍歷到根號n for(int i=2;i*i<n;i++)//i*i<n====i<Math.sqrt(n) { //如果未被標記則為質數,從i倍開始標記它的所有倍數 if(flag[i]==0) { for(int j=i;i*j<n;j++) { flag[i*j]=1; } } } //從2開始遍歷輸出結果 for(int i=2;i<n;i++) { if(flag[i]==0) { System.out.println(i); } } } }