結果
問題 | No.1063 ルートの計算 / Sqrt Calculation |
ユーザー | Koki Shinjo |
提出日時 | 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; }