結果
問題 | No.888 約数の総和 |
ユーザー | mtsd |
提出日時 | 2019-09-20 21:35:48 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 5 ms / 2,000 ms |
コード長 | 1,444 bytes |
コンパイル時間 | 957 ms |
コンパイル使用メモリ | 105,356 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-14 16:44:58 |
合計ジャッジ時間 | 2,003 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 30 |
ソースコード
#include <algorithm> #include <bitset> #include <cassert> #include <chrono> #include <climits> #include <cmath> #include <complex> #include <cstring> #include <deque> #include <functional> #include <iostream> #include <list> #include <map> #include <numeric> #include <queue> #include <random> #include <set> #include <stack> #include <unordered_map> #include <unordered_set> #include <vector> #include <cstdint> using namespace std; typedef long long ll; #define MP make_pair #define PB push_back #define inf 1000000007 #define mod 1000000007 #define rep(i,n) for(int i = 0; i < (int)(n); ++i) vector<long long> dev; vector<int> id; void prime_factor(long long N){ for(int i=2;(long long)i*i<=N;i++){ int cnt = 0; while(N%i == 0){ cnt++; N /= i; } if(cnt){ dev.push_back(i); id.push_back(cnt); } } if(N != 1){ dev.push_back(N); id.push_back(1); } return; } #define MOD 1000000007 long long pow(long long a,long long b) { long long res = 1; while(b){ if(b & 1){ res = res * a; } a = a * a; b >>= 1; } return res; } int main(){ ll n; cin >> n; prime_factor(n); ll res = 1; rep(i,id.size()){ ll r =0; rep(j,id[i]+1){ r += pow(dev[i],j); } res *= r; } cout << res << endl; return 0; }