본문 바로가기

PS/boj

[BOJ] 12779 상품 is 뭔들

문제 링크

www.acmicpc.net/problem/12779

풀이

약수의 개수가 홀수라는 뜻은 어떤 자연수를 제곱한 제곱수라는 뜻이다.
따라서, $a$와 $b$ 사이에 존재하는 제곱수의 개수를 세면 된다.

Java 코드

더보기
import java.io.*;
import java.util.StringTokenizer;

public class Main {
    static long gcd(long a, long b) {
        return b > 0 ? gcd(b, a % b) : a;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(in.readLine());

        long a = Long.parseLong(st.nextToken());
        long b = Long.parseLong(st.nextToken());

        int cnt = (int) Math.sqrt(b) - (int) Math.sqrt(a);

        if (cnt == 0) {
            System.out.println(0);
            return;
        }

        long g = gcd(cnt, b - a);
        System.out.println(cnt / g + "/" + (b - a) / g);
    }
}

'PS > boj' 카테고리의 다른 글

[BOJ] 19774 ABCD-код  (0) 2021.01.29
[BOJ] 8965 Circular Sequence  (0) 2021.01.27
[BOJ] 13430 합 구하기  (0) 2021.01.23
[BOJ] 4197 Logo  (0) 2021.01.22
[BOJ] 4141 Numbersrebmun  (0) 2021.01.22