티스토리 뷰

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <math.h>
void main() {
    double input = 600851475143;
    int count = 0;
    for (int i = 2; i <= input; ++i) {
        for (int j = 1; j <= i; ++j) {
            if (i%j == 0)
                ++count;
        }
        if (count == 2) {
            if (fmod(input, (double)i) == 0) {
                printf("%d ", i);
                input /= i;
            }
        }
        count = 0;
    }
}
cs


소수 중에서도 정해진 수의 소인수인지 확인해야 하므로


1. 소수를 구하는 알고리즘과


2. 그것이 어떤 수의 소인수인지 확인하는 알고리즘을


같이 써야 한다.



나머지를 구하기 위한 % 연산자는 정수끼리의 연산에서만 사용 가능하였다.



찾아보니 fmod()라는, 실수 간 연산에서 나머지를 구하는 함수가 존재하여 사용하였다.


fmod()를 사용하기 위해서는 math.h 헤더파일을 포함시켜야 한다.

'Algorithm > Project Euler' 카테고리의 다른 글

프로젝트 오일러 2번  (0) 2017.05.19
프로젝트 오일러 20번  (0) 2017.05.19
프로젝트 오일러 16번  (0) 2017.05.18
프로젝트 오일러 14번  (0) 2017.05.17
프로젝트 오일러 11번  (0) 2017.05.15
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/03   »
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 31
글 보관함