슈콩

COS PRO 1급 JAVA 소수의 세제곱이 몇개가 있나요? 본문

카테고리 없음

COS PRO 1급 JAVA 소수의 세제곱이 몇개가 있나요?

shukong 2025. 12. 25. 14:11

 

 

[소스 코드]

// 다음과 같이 import를 사용할 수 있습니다.
import java.util.*;

class Main {
    boolean[] prime;
    public int solution(int a, int b) {
        // 여기에 코드를 작성해주세요.
        prime = new boolean[b+1];
        prime[0] = prime[1] = true;
        isPrime(b);
        int answer = 0;
        for(int i=2;i<=Math.sqrt(b);i++){
            if(prime[i]) continue;
            long sq = (long)i*i;
            long cube = (long)i*i*i;
            if(sq>=a && sq<=b) answer++;
            if(cube>=a && cube<=b) answer++;
        }
        return answer;
    }
    public void isPrime(int b){
        for(int i=2;i*i<=b;i++){
            if(!prime[i]){
                for(int j=i*i;j<=b;j+=i){
                    prime[j] = true;
                }
            }
        }
    }
}