Algorytm typu sprawdź wszystkie możliwe podzielniki, potrzebny często na maturę:
Do wykorzystania w zadaniu 63.3:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include <vector> #include <iostream> using namespace std; vector <int> factors(int number) { vector <int> czynniki; for (int i=2; i<=number; i++) { //dla wszystkich liczb od 2 do "zredukowanej" liczby number, która w pętli ulega dzieleniu przez kolejne podzielniki (redukcji) while (number % i == 0) { //dopóki liczba się dzieli przez to i number/=i; //to ją podziel czynniki.push_back(i); //i dodaj nowy czynnik do tablicy } } return czynniki; //vector daje nam możliwość prosto zwrócić całą tablicę. } int main() { vector <int> czynniki = factors(12); //przykkładowy rozkład 12 = 2 * 2 * 3 cout << "ile czynnikow: " << czynniki.size() << endl; for (int i=0; i<czynniki.size(); i++) cout << czynniki[i]<<" * "; return 0; } |