C和Java判斷一個數字是否為素數


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){ //如果被整除就直接跳出循環(也就是他能被1和它本身以外的數整除(他不是素數),那么就不會滿足下面的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】是素數!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM