close
題目概要:
輸入一數字,判斷是否為質數。
解題方向:
1. 原本數字、反轉後數字皆為質數且原本數字不等於反轉後的數字=emirp。
2. 原本數字為質數或者原本數字、反轉後數字皆為質數但原本數字等於反轉後的數字 =prime。
3. 非質數。
程式碼:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Java | |
import java.util.Scanner; | |
import java.util.Vector; | |
class uva10235{ | |
public static void main(String args[]){ | |
Scanner sc=new Scanner(System.in); | |
while(sc.hasNext()){ | |
String n=sc.next(); //讀入數字 | |
String r=""; //反轉後的數字 | |
//數字反轉 | |
for(int i=n.length()-1;i>=0;i--){ | |
r=r+n.charAt(i); | |
} | |
if(isPrime(Integer.parseInt(n)) && isPrime(Integer.parseInt(r)) && !n.equals(r)) System.out.println(n+" is emirp."); //r,n皆為質,且r!=n | |
else if(isPrime(Integer.parseInt(n))) System.out.println(n+" is prime."); // n為質數 | |
else System.out.println(n+" is not prime."); //都不是 | |
} | |
} | |
//質數判斷 | |
public static boolean isPrime(int n){ | |
boolean flag=true; | |
//最多判斷到n/2就可以停止。 | |
for(int i=2;i<=n/2;i++){ | |
if(n%i==0){ | |
flag=false; | |
break; | |
} | |
} | |
return flag; | |
} | |
} |
文章標籤
全站熱搜