반응형
문제
어떤 수를 소수의 곱으로만 나타내는 것을 소인수분해라 하고, 이 소수들을 그 수의 소인수라고 합니다.
예를 들면 13195의 소인수는 5, 7, 13, 29 입니다.
600851475143의 소인수 중에서 가장 큰 수를 구하세요.
코드
#include <stdio.h>
int main(void)
{
int divisor; //나눗수
long long quotient = 600851475143;
for (divisor = 2; divisor <= quotient; divisor++)
{
if (quotient % divisor == 0)
{
quotient = quotient / divisor; //몫을 다시 나눠지는 수로 설정
printf("%d\n", divisor);
}
}
return 0;
}
A를 B로 나누어 C란 몫으로 나누어떨어진다면,
C를 다시 D로 나누는 연산을 반복하며 소인수분해를 시행한다.
A는 C로 대체되므로 C를 quotient라 이름 지었다.
나누는 수인 B와 D는 divisor라 이름 지었다.
정답:
더보기
6857
반응형
'프로그래밍 > Baekjoon' 카테고리의 다른 글
(C언어)프로젝트 오일러(Project Euler) 6. 1부터 100까지 "제곱의 합"과 "합의 제곱"의 차는? (0) | 2020.05.25 |
---|---|
(C언어)프로젝트 오일러(Project Euler) 5. 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수 (0) | 2020.05.25 |
(C언어)프로젝트 오일러(Project Euler) 4.세자리 수를 곱해 만들 수 있는 가장 큰 대칭수 (0) | 2020.05.25 |
[C언어]프로젝트 오일러(Project Euler) 2. 피보나치 수열에서 4백만 이하이면서 짝수인 항의 합 (0) | 2020.05.25 |
project euler(프로젝트 오일러) 1. 1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면? (0) | 2018.03.28 |