
https://www.youtube.com/watch?v=Ha2QNsL9wXI&list=PLFgS-xIWwNVX-zm4m6suWC9d7Ua9z7fuT&index=26
📌 오일러 피 함수의 정의
- 함수 P[N]의 정의는 1부터 N까지의 범위에서 N과 서로소인 자연수의 개수
ex) P[6] = 1~6범위에서 6과 서로소인 자연수 개수 → 1, 5
*서로소 : 공약수가 1이외에 없는 수
◾ 오일러 피 함수의 원리
- 구하고자 하는 오일러의 피 범위만큼 배열을 자기 자신의 인덱스값으로 초기화
- 2부터 시작해 현재 배열의 값과 인덱스가 같으면 (=소수일 때) 현재 선택 된 숫자(K)의 배수에 해당하는 수를 배열에서 끝까지 탐색하며
P[i] = P[i]-P[i]/K
연산을 수행한다 (i는 K의 배수)
- 배열의 끝까지 반복하여 오일러 피 함수를 완성
1. 구하고자 하는 범위까지 배열을 생성 한 후 2를 선택

2. 2의 모든 배수마다 P[i] = P[i]-P[i]/2 연산을 수행해 값을 갱신
- 예를들어 8 = 8 (8/2)

→ 2의 경우 2-(2/2) = 1 / 4의 경우 4 - (4/2) = 2 / ...
3. 소수 구하기에서 배수를 지우는 부분만 P[i] = P[i]-P[i]/K로 변경하면 오일러 피의 함수를 간단히 구현할 수 있다. N = φ(N) 인곳 (소수)를 찾아 값을 갱신

→ 3의 경우 3-(3/3) = 2 / 9의경우 9-(9/3) = 6 / 6의 경우 6-(6/3) = 4 ...
4. 배열이 끝날 때 까지 반복


