第6回日本情報オリンピック 春合宿 1日目 問題2 「階乗」 (Factorial)
このブログを参考にしました。
[JOI合宿]2007-Day1:Factorial:Snowing day:So-net blog
#include <bits/stdc++.h> using namespace std; int ans; int main(){ int n; scanf("%d",&n); for(int i = 2;i <=n;i+=2){ if(n == 0)break; int tmpans=0; while(n % i == 0){ n /= i; tmpans += i; } ans = max(ans,tmpans); if(i == 2)i--; } printf("%d\n",ans); return 0; }