1. 程式人生 > >C和Java判斷一個數字是否為素數

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){ //如果被整除就直接跳出迴圈(那麼就不會滿足下面的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】是素數!!!