結果
| 問題 |
No.375 立方体のN等分 (1)
|
| コンテスト | |
| ユーザー |
kapo
|
| 提出日時 | 2016-06-09 11:45:19 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 737 bytes |
| コンパイル時間 | 502 ms |
| コンパイル使用メモリ | 61,496 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2024-10-09 06:13:01 |
| 合計ジャッジ時間 | 1,805 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 4 WA * 28 |
ソースコード
#include <iostream>
#include <vector>
#define rep(i,a,b) for(int i=(a);i<(b);i++)
#define pb push_back
#define ll long long
using namespace std;
#define LMAX 316229
ll N;
int *P;
void prime(void)
{
rep(i,2,LMAX) {
if(P[i] == 0) P[i] = i;
for(int j = i+i; j < LMAX; j += i) {
P[j] = -1;
}
}
}
int main(void)
{
cin >> N;
int max = N-1;
P = new int[LMAX]();
prime();
// rep(i,2,N) if(P[i] != -1) cout << P[i] << " ";
vector<int> V;
rep(i,2,LMAX) {
if(P[i] == -1) continue;
if(N % P[i] == 0) {
V.pb(P[i]);
N /= P[i];
i = 1;
}
}
if(N) V.pb(N);
int min = 0;
// for(auto i:V) cout << i << " "; cout << endl;
for(auto i:V) min += i-1;
cout << min << " " << max << endl;
delete[] P;
return 0;
}
kapo