Ezcho

[1016] 제곱 ㄴㄴ 수(코드) 본문

Algorithm/BOJ

[1016] 제곱 ㄴㄴ 수(코드)

Ezcho 2022. 11. 13. 23:40
 import java.util.Scanner;

    public class Main {

        public static int cnt;
        public static boolean[] TF;
        public static long min,max;

        public static void main(String[] args) {

            Scanner sc = new Scanner(System.in);

            min = sc.nextLong();
            max = sc.nextLong();
            long l = max-min+1;

            TF = new boolean[(int)l];

            cnt = 0;

            for(long i = 2; i <= Math.sqrt(max); i++) {
                long pow = i * i;
                long start = min % pow == 0 ? min / pow : (min / pow) + 1;
                for(long j = start; j * pow <= max; j ++) {
                    TF[(int) ((j * pow) - min)] = true;
                }
            }
            for(int k=0;k<TF.length;k++)
                if(!TF[k])
                    cnt++;

            System.out.print(cnt);
        }
    }
Comments