Napisz kod, który będzie zwracał liczby (i wypisał ich czynniki ) takie, które mają trzy różne czynniki nieparzyste. np. 1157625: 3, 3, 3, 5, 5, 5, 7, 7, 7 TAK; 105: 3, 5, 7 TAK; 1287: 3, 3, 11, 13 TAK; 3465: 3, 3, 5, 7, 11 NIE
Bardzo proszę, aby było to na poziomie licealnym pierwsza klasa (bez string i map, tylko cmath i iostream, i jak najprościej)



Odpowiedź :

Odpowiedź

Proszę uprzejmie. Napisałam jeszcze raz bez  string  i bez  map. Załączyłam też wyniki aż do 1157625 – największej liczby z zadania.  Poprzednie były tylko do 999999.

Jeżeli tablice nie mogą być typu  vector,  to wiersz 36. zastąp następującą treścią

  • int spis[3][2] = { {0, 0},{0, 0},{0, 0} };

Jeśli dokonasz tej zmiany, to usuń wiersze 3. oraz 7.

Możesz też usunąć wiersze 23. i 24., albo objaśnić nauczycielowi, że to sprawdzanie jest dlatego, że funkcja jest uniwersalna i unika dzielenia przez zero.

Wyjaśnienie

Zanim jeszcze w ogóle poszedłeś do szkoły, bo już w roku 2011, wprowadzono standard C++11 i na prawdę wtedy sporo się w C++ zmieniło. (Potem jeszcze były zmiany C++14, C++17 i C++20, jednak mało się zmieniało w sprawach podstawowych.) Między innymi należy używać struktur  string  oraz  vector – są ku temu ważne powody, to nie jest kosmetyka.  Polecam współczesne podręczniki, na pewno takie, które uwzględniają standard C+14 lub nowszy.

Co do nauki programowania, to zajęło mi sporo czasu. I moje podręczniki się już zestarzały... Z tym, że mogę pisać nie tylko w językach C#, C++, Python i Scratch. Chociaż w Scratch nie zamierzam. :)

Patrzyłam na programy innych i je przerabiałam na swoje. Ale jednak bez jakiegoś dobrego podręcznika sobie nauki nie wyobrażam. Tytuł nic nie znaczy, bo czasem w tytule  Podstawy,  a treść jest całkiem zaawansowana, a czasem w tytule  Zaawansowany  podczas gdy wewnątrz same podstawy...

Nie wiem dlaczego nie napisałeś, że używasz Code::Blocks. A w każdym razie Twój przykład wygląda jak z Code::Blocks. Jeśli nic nie zmieniałeś, Code::Blocks domyślnie używa standardu C++14. Natomiast sugerowałabym abyś pisał programy w całkowicie darmowym Microsoft Visual Studio 2019. Więcej i szybciej się nauczysz. VS 2019 wprawdzie domyślnie używa C++17, ale różnice są małe. Właściwie na Twoim poziomie sprowadzają się o tego, że w tej edycji Code::Blocks identyfikatory (nazwy zmiennych, funkcji itd.) jeszcze nie mogą zawierać polskich liter i czasem potrzeba dopisać dodatkowe wiersze #include.

Tak konkretnie polecam VS 2019, a nie VS 2022. Pisz w VS 2019, a potem kopiuj do Code::Blocks.

Zobacz obrazek 0AB
Zobacz obrazek 0AB
Zobacz obrazek 0AB