백준_1016 제곱ㄴㄴ수 (에라토스테네스의 채)Algorithm/Algorithm 문제2024. 2. 4. 17:51
Table of Contents
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class BJ_1016_제곱ㄴㄴ수 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
long min = Long.parseLong(st.nextToken());
long max = Long.parseLong(st.nextToken());
boolean[] arr = new boolean[(int)(max - min + 1)]; // 제곱ㄴㄴ수 체크 배열
long startInd, pow;
for (long i=2; i*i <= max; i++) {
pow = i*i; // 제곱수
if (min%pow == 0) { //pow*j(제곱수의 배수)이 min을 넘기는 처음 j 값을 구한다
startInd = min/pow;
} else {
startInd = min/pow + 1;
}
for(long j=startInd; pow*j <= max; j++) { // 제곱수의 배수 제거
arr[(int)(pow*j-min)] = true; // min만큼 빼주어 체크 배열 인덱스에 맞춤
}
}
int cnt = 0;
for(int i=0; i<arr.length; i++) {
if (arr[i] == false) { //남은 제곱ㄴㄴ수 개수 체크
cnt++;
}
}
System.out.println(new StringBuilder().append(cnt));
}
}
'Algorithm > Algorithm 문제' 카테고리의 다른 글
백준_1934 최소공배수 (유클리드 호제법) (1) | 2024.02.06 |
---|---|
백준_11689 GCD(n, k) = 1 (오일러 피 함수) (0) | 2024.02.05 |
백준_1747 소수&팰린드롬 (에라토스테네스의 채) (0) | 2024.02.03 |
백준_1456 거의 소수 (에라토스테네스의 채) (1) | 2024.02.02 |
백준_1929 소수 구하기 (에라토스테네스의 채) (1) | 2024.02.01 |
@kjyyjk :: 녕의 학습 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!