QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#380586#8508. DiviDueloGannyWA 0ms3604kbC++141.4kb2024-04-07 06:15:432024-04-07 06:15:44

Judging History

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

  • [2024-04-07 06:15:44]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3604kb
  • [2024-04-07 06:15:43]
  • 提交

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){
        cout << "Y" << endl;
    }else if (!sumaEsPar && factoresPrimos.size()<2){
        cout << "Y" << endl;
    }else{
        cout << "N" << endl;
    }

    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3604kb

input:

10

output:

2^1 5^1 Y

result:

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