Условие
Имате въведени 3 естествени числа от интервала [10..10000], представляващи знаменатели на 3 дроби. Да се състави програма, която извежда най-малкия общ знаменател на тези дроби.
Входни данни три естествени числа от интервала [10..10000].
Пример: 30, 45, 225 Изход: 15.
Използвайте цикъл while.
Решение
#include<iostream>
using namespace std;
int main()
{ int ch1,ch2,ch3,flag,por,znam=1;
cout<<"Imate 3 estestweni chisla predstawlqwashi znamenteli na 3 otdelni drobi.\n";
cout<<"Da se systawi programa, koqto izwevda naj-malkiq obsh znamenat\n";
cout<<"na drobite. Znamenatelite sa estestweni chisla ot interwala [10..10000].\n";
cout<<"Primer 30, 45, 150 Izhod NOZ=450"<<endl;
por=2;// wsqko estestweno chislo se deli na 1 i na sebe si
cout<<"Wywedete chislo 1 ot interwala [10..10000]: ";cin>>ch1;
cout<<"Wywedete chislo 2 ot interwala [10..10000]: ";cin>>ch2;
cout<<"Wywedete chislo 3 ot interwala [10..10000]: ";cin>>ch3;
cout<<"Obshiqt znamentel e proizwedenie na:\n";
while (ch1>1 || ch2>1 || ch3>1) //dokato chislata sa po-golemi ot 1
{//dwa wloveni cikyla
do {
flag=0;//nqma delitel , tyrsim dali pone edno ot chislata ima takyw delitel
if (ch1%por==0) {ch1/=por;flag=1;}
if (ch2%por==0) {ch2/=por;flag=1;}
if (ch3%por==0) {ch3/=por;flag=1;}
if (flag) {znam*=por; cout<
0);//dokato pone edno ot chislata e kratno
por++;//uwelichawa tyrseniq delitel s 1, t.e. por=por+1
//cout<<ch1<<":"<<ch2<<":"<<ch3<<":"<<por<<endl;
}//kraj na wynshniq cikyl
cout<<"\nNaj-malkiqt obsh znamenatel na wywedenite chisla e: "<<znam<<endl;
system("pause"); //zadyrva programata do natiskane na klawish ot klawiaturata
return 0;
}//kraj na programata