본문 바로가기
반응형

전체 글145

C언어, 다음 소수 찾기 특정 수가 주어진다면 특정 수이상인 소수중 가장 작은 소수를 찾는 알고리즘을 만들어 보도록 하겠습니다. 우선 소수임을 판별해 주는 함수가 필요합니다. 저희는 OdOp_next함수에서 판별하겠습니다. OdOp_next int OdOp_next(long long nb) { long long i; long long standard; i = 2; standard = OdOp_sqrt(nb); while (nb % i != 0 && i 2023. 12. 14.
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.
반응형