Napisz program w c++ z wykorzystaniem pętli while i for. Treść zadania poniżej: Dane są dwie liczby naturalne a oraz b. Ile wspólnych dzielników (tzn. takich, które jednocześnie dzielą a oraz b) mają podane liczby? Przykład Wejście (cin) 12 16 Wyjście (cout) 3 Wyjaśnienie: dzielnikami 12 są: 1 2 3 4 6 i 12, zaś dzielnikami 16 są: 1 2 4 8 i 16, więc wspólnymi dzielnikami są liczby 1, 2 i 4, dlatego na wyjściu powinno wyjść 3.
Miloooo2713718294723
w zadaniu chodziło o sumę wspólnych dzielników, więc jeżeli dałbyś radę zamienić np. 1, 2, 3, 4 na po prostu 4, to byłbym jeszcze bardziej wdzięczny :D
CalkiSaSuper
Przecież masz na końcu liczbę wszystkich wspólnych dzielników cout << endl <<"Liczba wspolnych dzielnikow: "< Wypisywanie wspólnych dzielników wykonuje się w funkcji print_vector wystarczy, że usuniesz wywołanie
#include <iostream>
#include <vector>
using namespace std;
void set_variables(int &a, int&b, int &max)
{
cout << "Podaj a:";
cin>>a;
cout <<"Podaj b:";
cin >> b;
(a > b) ? max = a : max = b;
}
vector<int> find_common_divors(int a, int b, int max)
{
vector<int> common_divisors;
for(int i = 1; i <= max; ++i)
{
if (a % i == 0 && b % i == 0)
{
common_divisors.push_back(i);
}
}
return common_divisors;
}
void print_vector(vector<int> common_divisors)
{
for(int i = 0; i < common_divisors.size(); ++i)
{
cout << common_divisors[i]<<", ";
}
}
int main()
{
vector<int> common_divisors;
int a,b,max;
set_variables(a,b,max);
common_divisors = find_common_divors(a,b,max);
print_vector(common_divisors);
cout << endl <<"Liczba wspolnych dzielnikow: "<<common_divisors.size();
}
cout << endl <<"Liczba wspolnych dzielnikow: "<
Wypisywanie wspólnych dzielników wykonuje się w funkcji print_vector wystarczy, że usuniesz wywołanie