Lv.1小数点を検索


質問する



コード#コード#

class Solution {
	//소수 판별하여 true/false 반환하는 함수
    public static boolean checkPrime(int num){
        if(num==1) return false;
        for(int i=2; i<=Math.sqrt(num); i++){
            if(num%i==0) return false;
        }
        return true;
    }
    public int solution(int n) {
        int answer = 0;
        //1~n 까지 반복문 돌면서 소수 판단을 한다.
        for(int i=1; i<=n; i++){
            if(checkPrime(i)){ // 소수이면 answer 플러스
                answer++;
            }
        }
        return answer;
    }
}

コードコメント

 for(int i=2; i<=Math.sqrt(num); i++){}
最初はnum/2を繰り返し文条件に設定したが、テスト例ではタイムアウトがあり、効率も合格しなかった.
だからjavaのMathでsqrt(num)を使用すると、タイムアウトも効率にも影響しません.
次はMathに続きますsqrt()はよく使うべきです.

失敗後に成功