Hard deck/리포트

041 : Euler phi

서버관리자 페페 2022. 8. 3. 14:43
(Briefing)
문제  단 하나의 맥락 입출력과 되어야 하는 그림
GCD(n, k) = 1(1<= k <=n) 를 만족하는 자연수 n의 갯수를 출력하라   I //
n(1 <= n <= 10^12)

O //
갯수

 

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws Exception {
        
        // Input Supply Cable
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        long n = Long.parseLong(br.readLine());
        
        // Preprocessing
        long result = n;
        
        // Operating Euler phi function
        for (long p = 2; p <= Math.sqrt(n); p++) {
            if (n % p == 0) {
                result = result - result/p;
                while (n % p == 0) {
                    n /= p;
                }
            }
        }
        if (n > 1)
            result = result - result/n;

        // Output Extracting Cable
        System.out.println(result);

    }
}

'Hard deck > 리포트' 카테고리의 다른 글

045 : Extended Euclidean algorithm  (3) 2022.08.03
044 : Cocktail  (0) 2022.08.03
040 : 제곱이 아닌 수 찾기  (3) 2022.07.30
037 : 소수 구하기  (0) 2022.07.30
036 : 회의실 배정하기  (2) 2022.07.29