結果
問題 | No.888 約数の総和 |
ユーザー |
![]() |
提出日時 | 2019-09-20 21:30:57 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 3,306 bytes |
コンパイル時間 | 1,774 ms |
コンパイル使用メモリ | 174,556 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-14 16:27:44 |
合計ジャッジ時間 | 2,726 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 25 WA * 5 |
ソースコード
#include "bits/stdc++.h"// Begin {{{using namespace std;#define all(x) x.begin(), x.end()#define rep(i, n) for (i64 i = 0, i##_limit = (n); i < i##_limit; ++i)#define reps(i, b, e) for (i64 i = (b), i##_limit = (e); i <= i##_limit; ++i)#define repr(i, b, e) for (i64 i = (b), i##_limit = (e); i >= i##_limit; --i)#define var(Type, ...) Type __VA_ARGS__; input(__VA_ARGS__)using i64 = int_fast64_t;using pii = pair<i64, i64>;template <class T>using MaxHeap = priority_queue<T>;template <class T>using MinHeap = priority_queue<T, vector<T>, greater<>>;template <class A, class B> inline bool chmax(A &a, const B &b) { return b > a && (a = b, true); }template <class A, class B> inline bool chmin(A &a, const B &b) { return b < a && (a = b, true); }inline i64 sigma(i64 n) { return n * (1 + n) >> 1; }inline i64 updiv(i64 n, i64 d) { return (n + d - 1) / d; }constexpr int INF = 0x3f3f3f3f;constexpr i64 LINF = 0x3f3f3f3f3f3f3f3fLL;constexpr int MOD = int(1e9) + 7;#ifndef DEBUG#define dump(...)#endifinline void input() {}template <class Head, class... Tail>inline void input(Head&& head, Tail&&... tail) {cin >> head;input(forward<Tail>(tail)...);}inline void outs() { cout << "\n"; }template <class Head, class... Tail>inline void outs(Head&& head, Tail&&... tail) {cout << head << (sizeof...(tail) ? " " : "");outs(forward<Tail>(tail)...);}template <class T>inline void outs(vector<T> &vec) { for (auto &e : vec) cout << e << " \n"[&e == &vec.back()]; }template <class T>inline void outs(vector<vector<T>> &df) { for (auto &vec : df) outs(vec); }inline void outl() { cout << "\n"; }template <class Head, class... Tail>inline void outl(Head&& head, Tail&&... tail) {cout << head << (sizeof...(tail) ? "\n" : "");outl(forward<Tail>(tail)...);}template <class T>inline void outl(vector<T> &vec) { for (auto &e : vec) cout << e << "\n"; }inline void outn() {}template <class Head, class... Tail>inline void outn(Head&& head, Tail&&... tail) {cout << head;outn(forward<Tail>(tail)...);}template <class T>inline void outn(vector<T> &vec) { for (auto &e : vec) cout << e; }template <class T>inline vector<T> make_v(const T &initvalue, size_t sz) {return vector<T>(sz, initvalue);}template <class T, class... Args>inline auto make_v(const T &initvalue, size_t sz, Args... args) {return vector<decltype(make_v<T>(initvalue, args...))>(sz, make_v<T>(initvalue, args...));}// }}} Endmap<i64, i64> primeFactorize(i64 n) {map<i64, i64> ret;for (i64 i = 2; i * i <= n; ++i) {while (n % i == 0) {++ret[i];n /= i;}}if (n != 1) ret[n] = 1;return ret;}i64 power(i64 x, i64 n, i64 M) {if (!n) return 1;if (n % 2 == 0) {i64 t = power(x, n / 2, M);return t * t % M;}return x * power(x, n - 1, M) % M;}signed main() {ios::sync_with_stdio(false);cin.tie(nullptr);var(i64, N);vector<i64> vec;for (auto e : primeFactorize(N)) {i64 norm = 0;reps(i, 0, e.second) {norm += power(e.first, i, MOD);}vec.emplace_back(norm);}i64 res = 1;for (auto e : vec) {res *= e;}outl(res);return 0;}