Legkisebb közös többszörös kiszámítása?
Összeszorozom a két számot, majd a szorzatot elosztom a legnagyobb közös osztóval, de csak a kisebb számoknál működik. Hogy csináljam meg?
int main()
{
int a,b,d,o;
cin>>a;
cin>>b;
if (a<b)
{
d=b-a;
o=(a*b)/d;
}
if (a>b)
{
d=a-b;
o=(a*b)/d;
}
cout<<o;
return 0;
}
#include <cstdlib>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a, aa, b, bb, m ,lnko, lkkt;
cout << "Kérem az első számot: ";
cin >> a;
cout << "Kérem a második számot: ";
cin >> b;
if (a < b) swap(a,b);
aa = a;
bb = b;
while (m != 0){
m = a % b;
a = b;
b = m;
}
lnko = a;
lkkt = aa * bb / lnko;
cout << "A legnagyobb közös osztó: " << lnko << endl;
cout << "A legkisebb közös többszörös: " << lkkt << endl;
system("PAUSE");
return 0;
}
C++11-el így néz ki:
#include<iostream>
#include<tuple>
using namespace std;
int lnko(int a, int b)
{
while(b!=0) {
tie(a, b) = make_tuple(b, a%b);
}
return a;
}
int lkkt(int a, int b)
{
return static_cast<long>(a)*b/lnko(a,b);
}
int main()
{
int a, b;
cout<<"Írj be az első számot:"<<endl;
cin>>a;
cout<<"Írj be a második számot:"<<endl;
cin>>b;
cout<<"A legnagyobb közös osztó: "<<lnko(a, b)<<endl;
cout<<"A legkisebb közös többszörös: "<<lkkt(a, b)<<endl;
return 0;
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!