close

題目概要:

輸入一數字,判斷是否為質數。

解題方向:

1. 原本數字、反轉後數字皆為質數且原本數字不等於反轉後的數字=emirp。

2. 原本數字為質數或者原本數字、反轉後數字皆為質數但原本數字等於反轉後的數字 =prime。

3. 非質數。

程式碼:

//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;
}
}
view raw uva10235.java hosted with ❤ by GitHub

arrow
arrow
    文章標籤
    Java
    全站熱搜
    創作者介紹
    創作者 a7069810 的頭像
    a7069810

    紀錄自己的程式人生

    a7069810 發表在 痞客邦 留言(0) 人氣()