본문 바로가기
반응형

Algorithm51

C언어, 소수 판별하기 소수는 1과 자기 자신 외에는 나누어 떨어지지 않는 수를 말합니다. 즉, 약수가 2개만 존재하는 것입니다. 2, 3, 5, 7, 11, 13, ... 이렇게 다양한 수가 있습니다. 0은 1로도 못 나누기 때문에 소수가 아니고, 1은 약수가 2개가 아니죠. 그렇다면 소수를 판별해 주는 함수를 만들어 보도록 하겠습니다. int OdOp_is_prime(int nb) { int i; if (nb < 2) return (0); i = 2; while (nb % i != 0 && i nb / 2) return (1); return (0); } 앞에서도 설명했다시피 만약 입력받은 수가 2보다 작다면 소수가 아닌 것이기 때문에 0을 리턴해 줍니다. 이제 nb를 i로 나누어줍니다. 이때 나머지가 0이 나오지 않다면 i.. 2023. 12. 13.
C언어, 제곱근 구하기 제곱근을 구하는 알고리즘을 작성해 보도록 하겠습니다. 제곱근이란 제곱의 반대라고 생각하면 편할 것 같습니다. 예를 들어, 4의 제곱근은 무엇일까요? 2를 2번 곱하면 4가 되므로 2가 됩니다. 그렇다면 n의 제곱근은 어떠한 수 X를 2번 곱했을 때 n이 된다면 X는 n의 제곱근이 됩니다. 아래의 함수에서 n을 인자 nb로 받습니다. int OdOp_sqrt(int nb) { long long i; if (nb 2023. 12. 12.
C언어, 팩토리얼(factorial) 팩토리얼을 c언어로 구현해 보도록 하겠습니다. 팩토리얼은 그 수보다 작거나 같은 모든 양의 정수의 곱입니다. 예를 들어 4!은 1 * 2 * 3 * 4 즉, 24가 되겠죠. 그렇다면 n! = 1 * 2 * ..... * (n - 1) *n이 될것입니다. 아래의 함수는 n을 nb라는 인자를 받아서 계산할 것입니다. 재귀함수를 이용하지 않는 버전과 이용하는 버전 이렇게 2가지를 한번 살펴보도록 하겠습니다. 우선 사용하지 않는 버전입니다. int OdOp_iterative_factorial(int nb) { int answer; answer = 1; if (nb 1) { answer *= nb; nb--; } return (answer); } 재귀함수를 사용.. 2023. 12. 11.
C언어, 거듭 제곱 거듭 제곱을 c언어로 구현을 해보도록 하겠습니다. 예를 들어 2의 3제곱 또는 2의 3승은 2를 3번 곱하는 것입니다. 즉, 2 * 2 * 2 = 8이 되겠죠. 이때, 2가 밑이고 3이 지수입니다. 아래의 함수에서는 밑을 nb라는 인자로 지수를 power이라는 인자로 사용하고 있습니다. 재귀함수를 이용하지 않는 버전과 이용하는 버전 이렇게 2가지를 한번 살펴보도록 하겠습니다. 우선 사용하지 않는 버전입니다. int OdOp_iterative_power(int nb, int power) { long long answer; if (power == 0) return (1); else if (power 0) { a.. 2023. 12. 10.
반응형