C和Java判斷一個數字是否為素數
阿新 • • 發佈:2019-01-03
C:
/*
素數:
素數又稱質數。所謂素數是指除了 1 和它本身以外,不能被任何整數整除的數,例如17就是素數,因為它不能被 2~16 的任一整數整除。
*/
# include <stdio.h>
bool PrimeNumber(int val);
int main(){
int arr[] = {1,2,3,4,5};
int i,num;
num = sizeof(arr) / sizeof(arr[0]); //獲取陣列長度
for (i=0;i<num;i++){
if (PrimeNumber(arr[i])){ //true or false
printf("%d是素數\n",arr[i]);
}else{ //如果為false
printf("%d不是素數\n",arr[i]);
}
}
return 0;
}
bool PrimeNumber(int val){
int i;
for (i=2;i<val;i++){ //一直判斷是否能被val之前前的數整除(不包含1),如一直不能被整除(每次加1)就會一直迴圈到i的值等於val
if (val%i == 0){ //如果被整除就直接跳出迴圈(那麼就不會滿足下面的i等val),如果一直不能被整除i就一直加1直至迴圈結束
break;
}
}
//返回最終判斷結果
if (i == val){
return true;
}else{
return false;
}
}
Dev-c++中執行結果:
1不是素數
2是素數
3是素數
4不是素數
5是素數
Java:
package java_demo;
public class test {
public static void main(String[] args) {
int arr[] = {1,2,3,4,5};
for (int i=0;i<arr.length;i++) {
if (PrimeNumber(arr[i])) {
System.out.println("【" + arr[i] +"】" + "是素數!!!");
}else {
System.out.println("【" + arr[i] +"】" + "不是素數!!!");
}
}
}
public static boolean PrimeNumber(int val) {
/**
* 接收一個引數val
* return true or false
*/
int j; //如不宣告在for迴圈之外後面不能獲取j的值
boolean bool = false;
for (j=2;j<val;j++) {
if (val%j == 0) {
break;
}
}
if (j == val) {
bool = true;
}else {
bool = false;
}
return bool; //一切皆物件
}
}
eclipse中執行結果:
【1】不是素數!!!
【2】是素數!!!
【3】是素數!!!
【4】不是素數!!!
【5】是素數!!!