문제: 어떤 수를 소수의 곱으로만 나타내는 것을 소인수분해라 하고, 이 소수들을 그 수의 소인수라고 합니다.

예를들면 13195의 소인수는 5, 7, 13, 29 입니다. 600851475143의 소인수 중에서 가장 큰 수를 구하세요.


#include <stdio.h>


int main()

{

 int i;

 unsigned long long int n = 600851475143;

 for (i = 2; i<=n; i++)

 {

  if (n%i == 0){

   printf("%d ", i);

   n = n/i;

   i = 2;

  }

 }

 return 0;

 

}


//문제의 답이 제대로 나오지 않았는데, INT형의 범위를 고려하지 않은것이 문제였다. unsigned long long으로 선언하지 않으면 제대로 된 답이 나오지 않는다.

'Programing > Algorithm' 카테고리의 다른 글

프로젝트 오일러 6번  (0) 2015.02.10
프로젝트 오일러 5번  (0) 2015.02.10
프로젝트 오일러 4번  (0) 2015.02.10
프로젝트 오일러 2번  (0) 2015.02.10
Kadane's Algorithm  (0) 2015.02.10
Posted by kimmayer

블로그 이미지
IT 기술들 정리, 독후감을 주로 남깁니다!
kimmayer

공지사항

Yesterday
Today
Total

달력

 « |  » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함