結果
| 問題 |
No.1063 ルートの計算 / Sqrt Calculation
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-05-29 21:38:36 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 20 ms / 2,000 ms |
| コード長 | 1,050 bytes |
| コンパイル時間 | 480 ms |
| コンパイル使用メモリ | 64,008 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-11-06 02:53:24 |
| 合計ジャッジ時間 | 1,291 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 14 |
ソースコード
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <vector>
#include <queue>
int main()
{
/* input */
int n;
scanf( "%d", &n );
/* process */
int a = 1;
int b = n;
std::vector<int> primes;
for ( int x=2; x<=int(std::sqrt(n))+1; x++ ) {
bool check_prime = true;
for ( int i=0; i<primes.size(); i++ ) {
if ( x % primes[i] == 0 ) {
check_prime = false;
break;
}
}
if ( check_prime == true ) {
//printf("x:%d is prime\n",x);
primes.push_back( x );
while ( true ) {
//printf( "a: %d, b: %d\n", a, b );
if ( b % ( x * x ) == 0 ) {
b = b / ( x * x );
a = a * x;
} else {
break;
}
}
} else {
//printf("x:%d is not prime\n",x);
}
}
/* output */
printf( "%d %d\n", a, b );
return 0;
}