#2148
Pe Marte s-au descoperit N marțieni, identificați de către oamenii de știință de pe Pământ prin numerele de la 1 la N. Cercetările au dovedit că ADN-ul oricărui marțian X este format din mulțimea factorilor primi din descompunerea lui X.
Se știe că marțianul cu numărul de ordine Y îl moștenește pe marțianul cu numărul de ordine X dacă ADN(X) este inclus în ADN(Y), adică mulțimea factorilor primi ai lui X este inclusă în mulțimea factorilor primi ai lui Y.
Trebuie să specificăm că se pot întâlni situații extreme în care X îl moștenește pe Y dar și Y îl moștenește pe X, atunci când cei doi marțieni au ADN-urile egale.
Realizați un program care, considerând mulțimea celor N marțieni, determină numărul de perechi de marțieni (Y, X) pentru care Y îl moștenește pe X, unde 1 ≤ X ≤ N și 1 ≤ Y ≤ N.
ONIGIM 2017, Baraj juniori
| Problema | ADN | Operații I/O |
adn.in/adn.out
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 32 MB
/
Stivă 32 MB
|
| Id soluție | #63711919 | Utilizator | |
| Fișier | adn.cpp | Dimensiune | 524 B |
| Data încărcării | 16 Martie 2026, 12:04 | Scor/rezultat | Eroare de compilare |
adn.cpp:8:23: warning: missing terminating ' character [enabled by default] ofstream g("adn.out")' ^ adn.cpp:8:2: error: missing terminating ' character ofstream g("adn.out")' ^ adn.cpp: In function 'int main()': adn.cpp:9:2: error: expected ',' or ';' before 'f' f>>n; ^ adn.cpp:13:7: error: expected '(' before 'v' if v[i]==1) for(j=1;j*i<=p;j++) v[i*j]=v[i*j]*i; ^ adn.cpp:13:25: error: 'j' was not declared in this scope if v[i]==1) for(j=1;j*i<=p;j++) v[i*j]=v[i*j]*i; ^ adn.cpp:13:27: error: 'i' was not declared in this scope if v[i]==1) for(j=1;j*i<=p;j++) v[i*j]=v[i*j]*i; ^ adn.cpp:13:30: error: 'p' was not declared in this scope if v[i]==1) for(j=1;j*i<=p;j++) v[i*j]=v[i*j]*i; ^ adn.cpp:13:35: error: expected ';' before ')' token if v[i]==1) for(j=1;j*i<=p;j++) v[i*j]=v[i*j]*i; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema ADN face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.