Primitivni binarni zapisi


#1

Pitanje ili opis problema

Da li bih mogao da dobijem 2. test primer u zadatku Primitivni binarni zapisi?

Probao sam sve i svasta al uvek je samo on WA…

Unapred hvala!

Link ka zadatku ili odgovarajućoj stranici

https://petlja.org/biblioteka/r/problemi/zbirka-napredni-nivo/primitivni_binarni_zapisi


#2

Daj i tvoj kod, kako da znamo sta gresis


#3

Probaj dinamicko programiranje


#4

Pozdrav, evo mog koda za pomenuti zadatak:

#include <bits/stdc++.h>

using namespace std;

int main()
{
int n;
cin >> n;

vector<int> delioci;

for(int i = 1; i <= n / 2; i++){
    if(n % i == 0)
        delioci.push_back(i);
}
long long zbir = 0;

if(n == 0)
    cout << 0;

else if(n == 1)
    cout << 2;

else if(delioci.size() == 1){
    long long r = pow(2, n) - 2;
    cout << r;
}

else if(delioci.size() == 2){
    zbir = pow(2, delioci[1]);
    long long r = pow(2, n);
    cout << r - zbir;
}

else{
    bool precrtani[delioci.size()];
    for(int i = 0; i < delioci.size(); i++)
        precrtani[i] = false;

    for(int i = delioci.size() - 1; i >= 0; i--){
        if(!precrtani[i]){
        for(int j = i - 1; j >= 0; j--){
            if(!precrtani[j] && delioci[i] % delioci[j] == 0){
                precrtani[j] = true;
            }
            else if(precrtani[j] && delioci[i] % delioci[j] == 0){
                zbir -= (pow(2, delioci[j]));
            }
        }
        }
    }
    for(int i = 0; i < delioci.size(); i++)
       if(!precrtani[i])
            zbir += pow(2, delioci[i]);

    long long r = pow(2, n);
    cout << r - zbir;
}

return 0;

}


#5

Tako se ne nalaze delioci, nadji na netu kako se radi… ovo drugo jos ne kapiram sta si radio hahah al prvo vidi da l ce ovo da uradi posao


#6

Kako ne valjaju delioci?
Ne treba ni sam taj broj za algoritam…


#7

Dobri su ti delioci.


#8

Vidim da si ti uradio ovaj zadatak, jel si imao slucajno slicno resenje?


#9

Nisam, ja sam radio premo dinamickog programiranja


#10

Rekurzija, memoizacija ili na gore?


#11

Nebitno koji nacin, oba rade


#12

Ne pitajte kako ali saznao sam koji test primer mi ne radi: 60, zna li neko mozda koliki treba da bude izlaz?


#13

Moj izlaz je: 1152921503532053584 …