저는 요새 틈틈히 C 언어를 배우고 있어요.
모두의 코드
여기 선생님꺼 보고 배우는 중인데 글로도 쏙쏙 들어오게 잘 설명해 주셨어요!
다음은 제가 함수부분을 배워서 정리한 소인수 분해 함수입니다😀
#include <stdio.h>
#include <math.h>
// 소수 판별 함수
int isPrime(int n)
{
for (int i = 2; i < n; i++)
{
if (n % i == 0)
{
return 0;
}
}
return 1;
}
// 소인수 분해 함수
// ex) input: 7, output: 소수입니다.
// ex) input: 12, output: 2 X 2 X 3
void print_factorization(int n)
{
if (isPrime(n) == 1)
{
printf("%d: 소수입니다.\n", n);
return;
}
if (n < 0)
{
printf("%d", -1);
printf(" X ");
n *= -1;
}
int i = 2;
while (n > 1)
{
if (n % i == 0)
{
printf("%d", i);
if (isPrime(n) == 0)
{
printf(" X ");
}
n /= i;
i = 1;
}
i++;
}
printf("\n");
}
int main()
{
print_factorization(4);
print_factorization(2);
print_factorization(3);
print_factorization(20);
print_factorization(45);
print_factorization(180);
return 0;
}
결과:
2 X 2
2: 소수입니다.
3: 소수입니다.
2 X 2 X 5
3 X 3 X 5
2 X 2 X 3 X 3 X 5