Wspólna wielokrotność liczb naturalnych a i b jest to taka liczba c, która jest wielokrotnością liczby a i jest wielokrotnością liczby b, czyli istnieją takie liczby k, l należące do zbioru liczb naturalnych, że c=k⋅a, i c=l⋅b.
Najmniejsza wspólna wielokrotność dwóch liczb jest to najmniejsza liczba różna od zera, która jest jednocześnie wielokrotnością obu liczb.
Najmniejszą wspólną wielokrotność liczb a i b zapisujemy nww(a,b) lub NWW(a,b).
W przypadku niewielkich liczb, najmniejszą wspólną wielokrotność można znaleźć wypisując wielokrotności danych liczb, metoda ta jednak uciążliwa jest dla większych liczb. W tej sytuacji rozkładamy liczby na czynniki pierwsze. W rozkładzie drugiej liczby wykreślamy (o ile istnieją) wspólne czynniki. Iloczyn wszystkich nieskreślonych czynników obu liczb jest najmniejszą wspólną wielokrotnością tych liczb.
Przykład nww(20,30)=? Rozkładamy liczbę 20 i liczbę 30 na czynniki pierwsze: 20=2⋅2⋅5 30=2⋅3⋅5 W rozkładzie liczby 30 wykreślamy czynniki: 2 i 5, ponieważ występują one w rozkładzie liczby 20. Iloczyn pozostałych nieskreślonych czynników równy jest nww. 2⋅2⋅5⋅3=60 nww(20,30)=60
#include <iostream> #include <cstdlib> #include <cstring> //NWW using namespace std; int main() { int a,b; //deklaracja 2 integerowych zmiennych int pom_a,pom_b; //zmienne pomocnicze, do przechowywania pierwotnych wartości cin >> a >> b; //podawanie ich wartości pom_a=a; pom_b=b; if(a == b) //Jeżeli liczby a i b są równe, wtedy ich NWW będzie równe liczbie a (może również to być b) { cout << "NWW dla " << pom_a << " oraz " << pom_b << " wynosi: " << a; } else //W przeciwnym razie jeżeli a<b wtedy do a dodaj, jej wartość początkową, zaś jeżeli b<a, sytuacja analogiczna { do { if(a < b) { a=a+pom_a; } if(b < a) { b=b+pom_b; } } while(a != b); //pętla kończy się gdy a jest równe b (w kodzie: powtarzaj póki a różne od b) } cout << "NWW dla " << pom_a << " oraz " << pom_b << " wynosi: " << a << endl; //Wypisz na ekranie składowe, oraz NWW. system("pause"); //zatrzymanie programu i oczekiwanie na klawisz (WINDOWS!) return 0; //zwrócenie wartości 0, po wykonaniu programu }