結果

問題 No.300 平方数
ユーザー nksk38
提出日時 2017-07-09 11:03:12
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 810 bytes
コンパイル時間 908 ms
コンパイル使用メモリ 80,468 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-10-07 04:18:24
合計ジャッジ時間 2,333 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 41 WA * 2
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
#include<queue>
#include<vector>
#include<functional>
#include<cmath>
#include<map>
#include<stack>
#include<set>
#include<numeric>
#include<limits>

using namespace std;
typedef long long ll;
typedef pair<int, int> pi;
typedef pair<ll, ll> pl;

int main()
{
	ll X;
	cin >> X;

	double sq = sqrt(X);
	ll sq_i = sq;
	if (sq == (double)sq_i) {
		cout << 1 << endl;
		return 0;
	}
	
	ll x = X;
	int m = 2,cnt = 0;
	ll ans = 1;
	for (ll i = 1; i <= sqrt(X); i++) {
		if (X % m == 0) {
			X /= m;
			cnt++;
		}
		else {
			if (cnt != 0 && cnt % 2 != 0) {
				ans *= m;
			}
			cnt = 0;
			m++;
		}
	}

	if (cnt % 2 != 0)ans *= m;
	sq = sqrt(ans * x);
	sq_i = sq;
	if (sq != (double)sq_i) {
		ans *= X;
	}
	
	cout << ans << endl;
	return 0;
}
0