1. 程式人生 > >2018/12/06 L1-028 判斷素數 Java

2018/12/06 L1-028 判斷素數 Java

這題其實很簡單, 就是判斷素數, 但是, 這題將1也包括在測試點裡面, 這個是很奇怪的, 因為素數不是從2開始的嗎? 為什麼要判斷1?我在這個測試點上花了好多的腦細胞~~~~~, 程式碼如下:

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main2 {

    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new
InputStreamReader(System.in)); int num = Integer.parseInt(br.readLine()); int[] ArrNum = new int[num]; String[] YesOrNo = new String[num]; for(int i=0; i<num; i++) { ArrNum[i] = Integer.parseInt(br.readLine()); // 用來接收輸入的要判斷的數字. } for(int
i=0; i<num; i++) { if(PrimeNumber(ArrNum[i])) { YesOrNo[i] = "Yes"; } else { YesOrNo[i] = "No"; } } for(int i=0; i<num; i++) { System.out.println(YesOrNo[i]); } } public static boolean
PrimeNumber(int num) { // 這個判斷方法超時了. if( num == 1) { return false; } if( num == 2 || num == 3) { return true; } if( num%6 != 1 && num%6 != 5) { return false; } int tem = (int)Math.sqrt(num); for(int i=5; i<=tem; i+=6) { if( num%i == 0 || num %(i+ 2)==0) { return false; } } return true; } }