[백준] 4355 서로소 / 오일러 피

leeng·2023년 8월 10일
0

백준 4355 서로소

https://www.acmicpc.net/problem/4355

void countCoPrime(int n) {
        int[] arr = new int[n+1];

        for (int i = 1; i < arr.length; i++) {
            arr[i] = i;
        }

        for (int i = 2; i <= n; i++) { // 자꾸 2부터 시작해야한다는 걸 까먹는다..! 2부터 시작
            if(arr[i] == i){
                for (int j = i; j <= n; j += i) {
                    arr[j] = arr[j] - (arr[j] / i);
                }
            }
        }
        System.out.println(arr[n]);
    }

Euler phi

    int eulerPhi(int n) {
        int[] arr = new int[n + 1];
        for (int i = 1; i < n + 1; i++) {
            arr[i] = i;
        }

        for (int i = 2; i < n + 1; i++) {
            if (arr[i] == i) {
                for (int j = i; j < n + 1; j += i) {
                    arr[j] = arr[j] - (arr[j] / i);
                }
            }
        }

        for (int i = 1; i < n + 1; i++) {
            System.out.println(arr[i]);
        }
        System.out.println("------------------");

        return arr[n];
    }
profile
기술블로그보다는 기록블로그

0개의 댓글