けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 389 B - tcaF (6Q, 灰色, 150 点)

for 文または while 文の練習問題

問題概要

正の整数  X が与えられる。ある正の整数  N が存在して

 N! = X

を満たすことが保証される。 N を求めよ。

制約

  •  1 \le X \le 10^{18}

考えたこと

 1 \times 2 \times 3 \times \dots と計算を続けていって、 X に一致したところで break して、そのときの値を答えればよい。

#include <bits/stdc++.h>
using namespace std;

int main() {
    long long X, val = 1;
    cin >> X;
    for (long long n = 1; ; n++) {
        val *= n;
        if (val == X) {
            cout << n << endl;
            return 0;
        }
    }
}