-
오일러 피(phi)함수를 거듭 연산했을 때 몇 번에 0이 되는가 ?BOJ 2024. 10. 28. 20:15
phi = [0]*1000010 for i in range(1000001): phi[i] = i for i in range(2,1000001): if(phi[i] == i): for j in range(i,1000001,i): phi[j] = phi[j] * (i-1) // i phi[1] = 0 def countphi(k,cnt): if(k==0): return cnt return countphi(phi[k],cnt+1) lis =[] for i in range(1001): lis.append(countphi(i,0)) print(max(lis))대충 피함수 구하는 체(sieve) 랑 재귀돌려서 리스트에 넣었다.
1~1001 까지는 최대 11번이면 0에 도달하고
1~10001 까지는 최대 14번이면 0에 도달한다.
오일러 정리 쓸 때 유용하게 써먹을 수 있습니다
'BOJ' 카테고리의 다른 글
길이가 n^2 인 서로 다른 수의 수열에서 LIS or LDS 가 n+1 이지 않은 수열 구하기 (5) 2024.12.10 2024 ICPC Seoul Regional 후기 (0) 2024.11.27 Easy Problem (1) 2024.11.16 power tower 를 오일러 정리 적용하여 계산하기. (1) 2024.10.29 에라토스테네스의 체 구현 (2) 2024.07.23