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);
}
}