#2905
Gigel a găsit un șir cu n
numere naturale, numerotate de la 1
la n
și un număr p
. Neavând chef de muncă, Gigel vă cere să rezolvați următoarele cerințe:
a) Câți divizori are numărul din șir aflat pe poziția p
?
b) Care sunt numerele din șir care au același număr de divizori ca cel aflat pe poziția p
?
Problema | Divizori4 | Operații I/O |
![]() divizori4.in /divizori4.out
|
---|---|---|---|
Limita timp | 1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #57748809 | Utilizator | |
Fișier | divizori4.cpp | Dimensiune | 1.14 KB |
Data încărcării | 14 Aprilie 2025, 11:04 | Scor / rezultat | Eroare de compilare |
divizori4.cpp: In function 'int main()': divizori4.cpp:20:15: error: no match for 'operator=' (operand types are 'std::vector<int>' and 'int') nr[i] = std::stoi(nr_s); ^ divizori4.cpp:20:15: note: candidates are: In file included from /usr/include/c++/4.8/vector:69:0, from divizori4.cpp:3: /usr/include/c++/4.8/bits/vector.tcc:160:5: note: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(const std::vector<_Tp, _Alloc>&) [with _Tp = int; _Alloc = std::allocator<int>] vector<_Tp, _Alloc>:: ^ /usr/include/c++/4.8/bits/vector.tcc:160:5: note: no known conversion for argument 1 from 'int' to 'const std::vector<int>&' In file included from /usr/include/c++/4.8/vector:64:0, from divizori4.cpp:3: /usr/include/c++/4.8/bits/stl_vector.h:439:7: note: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::vector<_Tp, _Alloc>&&) [with _Tp = int; _Alloc = std::allocator<int>] operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) ^ /usr/include/c++/4.8/bits/stl_vector.h:439:7: note: no known conversion for argument 1 from 'int' to 'std::vector<int>&&' /usr/include/c++/4.8/bits/stl_vector.h:461:7: note: std::vector<_Tp, _Alloc>& std::vector<_Tp, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Tp = int; _Alloc = std::allocator<int>] operator=(initializer_list<value_type> __l) ^ /usr/include/c++/4.8/bits/stl_vector.h:461:7: note: no known conversion for argument 1 from 'int' to 'std::initializer_list<int>' divizori4.cpp:24:35: error: no match for 'operator/' (operand types are 'std::vector<int>' and 'int') for(int d = 1; d <= nr[p - 1] / 2; d++) if(nr[p - 1] % d == 0) nr_div_p++; ^ divizori4.cpp:24:58: error: no match for 'operator%' (operand types are 'std::vector<int>' and 'int') for(int d = 1; d <= nr[p - 1] / 2; d++) if(nr[p - 1] % d == 0) nr_div_p++; ^ divizori4.cpp:27:39: error: no match for 'operator/' (operand types are 'std::vector<int>' and 'int') for(int d = 1; d <= nr[i] / 2; d++) if(nr[i] % d == 0) nr_div_x++; ^ divizori4.cpp:27:58: error: no match for 'operator%' (operand types are 'std::vector<int>' and 'int') for(int d = 1; d <= nr[i] / 2; d++) if(nr[i] % d == 0) nr_div_x++; ^ divizori4.cpp:29:41: error: no matching function for call to 'std::vector<int>::push_back(std::vector<int>&)' nr_p_div.push_back(nr[i]); ^ divizori4.cpp:29:41: note: candidates are: In file included from /usr/include/c++/4.8/vector:64:0, from divizori4.cpp:3: /usr/include/c++/4.8/bits/stl_vector.h:901:7: note: void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = int; _Alloc = std::allocator<int>; std::vector<_Tp, _Alloc>::value_type = int] push_back(const value_type& __x) ^ /usr/include/c++/4.8/bits/stl_vector.h:901:7: note: no known conversion for argument 1 from 'std::vector<int>' to 'const value_type& {aka const int&}' /usr/include/c++/4.8/bits/stl_vector.h:919:7: note: void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = int; _Alloc = std::allocator<int>; std::vector<_Tp, _Alloc>::value_type = int] push_back(value_type&& __x) ^ /usr/include/c++/4.8/bits/stl_vector.h:919:7: note: no known conversion for argument 1 from 'std::vector<int>' to 'std::vector<int>::value_type&& {aka int&&}'
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Divizori4 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ă.