#3763
Un număr puternic este un număr natural mai mare decât 1 care are proprietatea că dacă este divizibil cu numărul prim p atunci este divizibil și cu p2. Scrieți un program care citește un număr natural N și apoi un șir de N numere naturale și determină:
1. Câte numere puternice sunt în șirul dat;
2. Care sunt perechile de numere din șirul rămas după ștergerea numerelor puternice, numere egal departate de capetele șirului, prin concatenarea cărora se obține un număr puternic.
ONSEPI, 2021, clasa a VI-a
| Problema | Puternic | Operații I/O |
puternic.in/puternic.out
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #63802861 | Utilizator | |
| Fișier | puternic.cpp | Dimensiune | 2.46 KB |
| Data încărcării | 19 Martie 2026, 12:42 | Scor/rezultat | Eroare de compilare |
puternic.cpp: In function 'bool patrat(long long int)': puternic.cpp:26:13: error: expected primary-expression before '__int128' while ((__int128)(r+1)*(r+1) <= x) r++; ^ puternic.cpp:26:13: error: expected ')' before '__int128' puternic.cpp:26:43: error: expected ')' before ';' token while ((__int128)(r+1)*(r+1) <= x) r++; ^ puternic.cpp:27:13: error: expected primary-expression before '__int128' while ((__int128)r*r > x) r--; ^ puternic.cpp:27:13: error: expected ')' before '__int128' puternic.cpp:27:34: error: expected ')' before ';' token while ((__int128)r*r > x) r--; ^ puternic.cpp:28:13: error: expected primary-expression before '__int128' return (__int128)r*r == x; ^ puternic.cpp:28:13: error: expected ')' before '__int128' puternic.cpp:25:15: warning: unused variable 'r' [-Wunused-variable] long long r = sqrt((long double)x); ^ puternic.cpp: In function 'bool cub(long long int)': puternic.cpp:33:13: error: expected primary-expression before '__int128' while ((__int128)(r+1)*(r+1)*(r+1) <= x) r++; ^ puternic.cpp:33:13: error: expected ')' before '__int128' puternic.cpp:33:49: error: expected ')' before ';' token while ((__int128)(r+1)*(r+1)*(r+1) <= x) r++; ^ puternic.cpp:34:13: error: expected primary-expression before '__int128' while ((__int128)r*r*r > x) r--; ^ puternic.cpp:34:13: error: expected ')' before '__int128' puternic.cpp:34:36: error: expected ')' before ';' token while ((__int128)r*r*r > x) r--; ^ puternic.cpp:35:13: error: expected primary-expression before '__int128' return (__int128)r*r*r == x; ^ puternic.cpp:35:13: error: expected ')' before '__int128' puternic.cpp:32:15: warning: unused variable 'r' [-Wunused-variable] long long r = cbrt((long double)x); ^ puternic.cpp: In function 'bool patrat(long long int)': puternic.cpp:29:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ puternic.cpp: In function 'bool cub(long long int)': puternic.cpp:36:1: warning: control reaches end of non-void function [-Wreturn-type] } ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Puternic 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ă.