QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#380557#8508. DiviDueloGannyWA 0ms3796kbC++141.3kb2024-04-07 05:52:402024-04-07 05:52:41

Judging History

你现在查看的是最新测评结果

  • [2024-04-07 05:52:41]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3796kb
  • [2024-04-07 05:52:40]
  • 提交

answer

#include <iostream>
#include <vector>

using namespace std;
vector<pair<long long, int>> factorizacionPrima(long long numero) {
    vector<pair<long long, int>> factoresPrimos;

    for (long long i = 2; i * i <= numero; ++i) {
        if (numero % i == 0) {
            int exponente = 0;
            while (numero % i == 0) {
                ++exponente;
                numero /= i;
            }
            factoresPrimos.emplace_back(i, exponente);
        }
    }
    if (numero > 1) {
        factoresPrimos.emplace_back(numero, 1);
    }
    return factoresPrimos;
}

bool sumaExponentesEsPar(const vector<pair<long long, int>>& factoresPrimos) {
    int sumaExponentes = 0;
    for (const auto& factor : factoresPrimos) {
        sumaExponentes += factor.second;
    }
    return sumaExponentes % 2 == 0;
}

int main() {

    long long numero;

    cin >> numero;

    vector<pair<long long, int>> factoresPrimos = factorizacionPrima(numero);
    bool sumaEsPar = sumaExponentesEsPar(factoresPrimos);

    // for (const auto& factor : factoresPrimos) {
    //     cout << factor.first << "^" << factor.second << " ";
    // }
    if (factoresPrimos.size()%2==0 && numero != 1 && sumaEsPar){
        cout << "Y" << endl;
    }else{
        cout << "N" << endl;
    }

    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3796kb

input:

10

output:

Y

result:

ok "Y"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3580kb

input:

9

output:

N

result:

ok "N"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3508kb

input:

1

output:

N

result:

ok "N"

Test #4:

score: -100
Wrong Answer
time: 0ms
memory: 3508kb

input:

549755813888

output:

N

result:

wrong answer 1st words differ - expected: 'Y', found: 'N'