Вписване в сайта



Четвъртък, 22 Юли 2010 05:45

цикъл while най-малък общ знаменател

Написана от 
Оценете
(1 глас)

Условие

Имате въведени 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

Прочетена 2433 пъти Последно променена в Вторник, 07 Декември 2010 14:11