#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 | #63711935 | Utilizator | |
| Fișier | adn.cpp | Dimensiune | 529 B |
| Data încărcării | 16 Martie 2026, 12:06 | Scor/rezultat | Eroare de compilare |
adn.cpp: In function 'int main()': adn.cpp:13:35: error: 'p' was not declared in this scope if (v[i]==1) for(int 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ă.