intさわだんのBlack History

刹那的レジェンドになりたい。

第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;
}