結果
| 問題 | No.3692 Calculate Mu |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-09 19:30:29 |
| 言語 | C++23(gcc16) (gcc 16.1.0 + boost 1.92.0 + ACL) |
| 結果 |
AC
不安定
|
| 実行時間 | 10 ms / 2,000 ms |
| + 177µs | |
| コード長 | 1,051 bytes |
| 記録 | |
| コンパイル時間 | 3,927 ms |
| コンパイル使用メモリ | 352,452 KB |
| 実行使用メモリ | 6,400 KB |
| 最終ジャッジ日時 | 2026-09-09 19:30:38 |
| 合計ジャッジ時間 | 5,368 ms |
|
ジャッジサーバーID (参考情報) |
judge3_0 / judge2_0 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 12 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vl vector<ll>
auto _ = []() { ios::sync_with_stdio(false); cin.tie(nullptr); return 0; }();
bool prime(ll N) {
if (N < 2) return false;
for (ll i = 2; i * i <= N; i++) {
if (N % i == 0) return false;
}
return true;
}
vl yaku(ll N) {
vl a;
ll temp = N;
for (ll i = 2; i * i <= temp; i++) {
if (temp % i == 0) {
a.push_back(i);
while (temp % i == 0) temp /= i;
}
}
if (temp > 1) a.push_back(temp);
return a;
}
int main() {
ll N; cin >> N;
if (N == 1) {
cout << 1 << "\n";
return 0;
}
if (prime(N)) {
cout << -1 << "\n";
return 0;
}
for (ll i = 2; i * i <= N; i++) {
if (N % (i * i) == 0) {
cout << 0 << "\n";
return 0;
}
}
vl a = yaku(N);
if (a.size() % 2 != 0) cout << -1 << "\n";
else cout << 1 << "\n";
return 0;
}