提出 #7443327
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
using int64 = long long;
#define int int64
#define debug(x) cerr<<#x<<":"<< (x)<<endl;
//
// eratosthenes
// + 値は1-indexedで格納されている
// + prime
// - 素数か否かがbool型で格納
// - prime[n] ? 素数 : 素数ではない
// + prime_factorize
// - 素因数分解をする関数
// - 引数nを素因数分解して,
// どの素数がどれだけ含まれているかをvector< pair<int,int> >で返す
// - e.g.) n=20 => (2,2), (5,1)
struct Eratosthenes {
// 1-indexedで検索可能
vector< bool > prime;
// sizeは1e6くらいまでならおk
Eratosthenes(int _size) {
init(_size);
}
void init(int n) {
prime.resize(n + 1);
for(int i=0; i<prime.size(); ++i) prime[i] = true;
prime[0] = prime[1] = false;
for(int i=2; i*i<=n; i++) {
if (prime[i]) {
for (int j=0; i*(j + 2)<n; ++j) {
prime[i*(j+2)] = false;
}
}
}
}
vector< pair< int, int > > prime_factorize(int n) {
vector< pair< int, int > > res;
for (int p=2; p*p<=n; ++p) {
if (n%p != 0) continue;
int num = 0;
while (n%p == 0) ++num, n /= p;
res.push_back(make_pair(p, num));
}
if (n != 1) res.push_back(make_pair(n, 1));
return res;
}
};
signed main() {
int n,p;cin>>n>>p;
Eratosthenes e(1);
vector< pair<int,int> > ps = e.prime_factorize(p);
int ans = 1;
for(int i=0;i<ps.size();++i){
if (ps[i].second/n==0) continue;
for (int j=0;j<ps[i].second/n;++j){
ans *= ps[i].first;
}
}
cout<<ans<<endl;
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | C - Product and GCD |
| ユーザ | task4233 |
| 言語 | C++14 (GCC 5.4.1) |
| 得点 | 300 |
| コード長 | 1659 Byte |
| 結果 | AC |
| 実行時間 | 6 ms |
| メモリ | 256 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 300 / 300 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample1.txt, sample2.txt, sample3.txt, sample4.txt |
| All | sample1.txt, sample2.txt, sample3.txt, sample4.txt, 1.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 2.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 3.txt, 4.txt, 5.txt, 6.txt, 7.txt, 8.txt, 9.txt, sample1.txt, sample2.txt, sample3.txt, sample4.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 1.txt | AC | 2 ms | 256 KiB |
| 10.txt | AC | 1 ms | 256 KiB |
| 11.txt | AC | 1 ms | 256 KiB |
| 12.txt | AC | 1 ms | 256 KiB |
| 13.txt | AC | 1 ms | 256 KiB |
| 14.txt | AC | 1 ms | 256 KiB |
| 15.txt | AC | 1 ms | 256 KiB |
| 16.txt | AC | 1 ms | 256 KiB |
| 17.txt | AC | 3 ms | 256 KiB |
| 18.txt | AC | 1 ms | 256 KiB |
| 19.txt | AC | 1 ms | 256 KiB |
| 2.txt | AC | 2 ms | 256 KiB |
| 20.txt | AC | 1 ms | 256 KiB |
| 21.txt | AC | 1 ms | 256 KiB |
| 22.txt | AC | 2 ms | 256 KiB |
| 23.txt | AC | 6 ms | 256 KiB |
| 24.txt | AC | 1 ms | 256 KiB |
| 25.txt | AC | 1 ms | 256 KiB |
| 26.txt | AC | 1 ms | 256 KiB |
| 3.txt | AC | 1 ms | 256 KiB |
| 4.txt | AC | 1 ms | 256 KiB |
| 5.txt | AC | 1 ms | 256 KiB |
| 6.txt | AC | 1 ms | 256 KiB |
| 7.txt | AC | 2 ms | 256 KiB |
| 8.txt | AC | 2 ms | 256 KiB |
| 9.txt | AC | 1 ms | 256 KiB |
| sample1.txt | AC | 1 ms | 256 KiB |
| sample2.txt | AC | 1 ms | 256 KiB |
| sample3.txt | AC | 1 ms | 256 KiB |
| sample4.txt | AC | 1 ms | 256 KiB |