Lorsque le nombre d'engagements est impair, uniquement lorsque l'engagement maximum peut être représenté par le carré d'un certain nombre Isqrt est une nouvelle fonction implémentée en Python 3.8.
from math import gcd, isqrt
A, B = map(int, input().split())
X = gcd(A, B)
if isqrt(X) * isqrt(X) == X:
print('Odd')
else:
print('Even')
Puisque le test est faible, si l'engagement maximum n'est pas divisible par un nombre inférieur à 10 7 </ sup>, il est émis comme Odd, sinon l'engagement maximum est normalement décomposé en facteurs premiers et en nombre de réductions. Vous pouvez également AC en demandant. Pourquoi n'est-ce pas dans le cas de test ou lorsque l'engagement maximum est un nombre premier de 10 9 </ sup> ou plus? (Je ne peux pas le résoudre et le dire par AC avec la méthode de solution de mensonge) ..
#include <bits/stdc++.h>
#define rep(i, a) for (int i = (int)0; i < (int)a; ++i)
using namespace std;
using ll = long long;
int main() {
ll A, B;
cin >> A >> B;
ll X = gcd(A, B);
if (X == 1) {
cout << "Odd" << endl;
return 0;
}
bool flag = false;
for (ll i = 2; i < 1e7; i++) {
if (X % i == 0) {
flag = true;
break;
}
}
if (!flag) {
cout << "Odd" << endl;
return 0;
}
ll result = 1;
ll t = 0;
while (X % 2 == 0) {
t++;
X /= 2;
}
result *= t + 1;
for (ll i = 3; i < (ll)(sqrt(X) + 1); i += 2) {
if (X % i != 0) continue;
ll t = 0;
while (X % i == 0) {
t++;
X /= i;
}
result *= t + 1;
}
if (X != 1) {
result *= 2;
}
if (result % 2 == 0) {
cout << "Even" << endl;
} else {
cout << "Odd" << endl;
}
return 0;
}
La somme des cotes est paire, vous pouvez donc gagner si vous ne donnez que des cotes.
N = int(input())
print(*range(1, N + 1, 2))
Vous pouvez gagner même si vous ne sortez que la seconde mi-temps.
N = int(input())
print(*range(N // 2 + 1, N + 1))
Recommended Posts