반응형
문제).
오일러 파이 함수(Eulerφ函數: Euler’s phi (totient) function)를 구현하시오.
수론에서 오일러 파이 함수(Eulerφ函數, 영어: Euler’s phi (totient) function)는 정수환의 몫환의 가역원을 세는 함수이다. 즉, n이 양의 정수일 때, φ(n)은 n과 서로소인 1부터 n까지의 정수의 개수와 같다. 예를 들어, 1부터 6까지의 정수 가운데 1, 5 둘만 6과 서로소이므로, ϕ(6) = 2이다. 1부터 10까지의 정수는 모두 11과 서로소이며, 11은 자기 자신과 서로소가 아니므로, φ(11) = 10이다. 1은 자기 자신과 서로소이므로, φ(1) = 1이다.
--출처:위키백과--
실행 예1).
입력)
value : 20
결과).
φ(5) = 8
실행 예2).
입력)
value : 11
결과).
φ(11) = 10
답은 아래에... ↓
스스로 풀어보시고... ↓
아래 답과 비교해보세요. ↓
프로그램 소스
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
/* 두 수의 최대 공약수 */
static int GDC(int x, int y)
{
if(y == 0) {
return x;
}
return GDC(y, x % y);
}
/* φ()함수 구현 */
int euler_phi(int value)
{
int idx;
int count = 1;
if(value <= 0) {
return -1;
}
for(idx = 2; idx < value; idx++) {
if(GDC(idx, value) == 1) {
count++;
}
}
return count;
}
int main(void)
{
int value;
printf("value : ");
scanf("%d", &value);
printf("φ(%d) = %d\n", value, euler_phi(value));
return 0;
}
반응형
'C언어 문제 > 수학 문제' 카테고리의 다른 글
삼각형의 종류(예각, 직각, 둔각)와 둘레, 넓이 구하기 (0) | 2021.10.27 |
---|---|
[백준 1463] 1로 만들기 (0) | 2020.08.12 |
한 변의 길이가 100이하인 직각 삼각형 구하기 (0) | 2020.06.12 |
복소수의 더하기/빼기/곱하기/절대값 구하기 (0) | 2020.06.12 |
[삼각함수] 0˚ ~ 180˚의 sin값 구하기 (0) | 2019.12.20 |