Project Euler

Project Euler #5 : 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수

jyheo98 2020. 8. 7. 10:56
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
int main() {
    VI primes = { 235711131719 };
    VI ans(8);
    rep(i, 121) {
        rep(j, 08) {
            int primesCnt = 0;
            int temp = i;
            while (1) {
                if (temp % primes[j] == 0) {
                    primesCnt++;
                    temp /= primes[j];
                }
                else break;
            }
            ans[j] = max(ans[j], primesCnt);
        }
    }
    llong ANS = 1;
    rep(i, 08) {
        rep(j, 0, ans[i]) {
            ANS *= primes[i];
        }
    }
    cout << ANS;
    return 0;
}
cs

정답 : 232792560