LKKT hogy kell kiszámolni c++ -ban?





Ez jó nem?
#include<iostream>
using namespace std;
int gcd(int a,int b)
{
int rem;
if(b==0)
return a;
if(a==0)
return b;
if(b>a)
{
a=a+b;
b=a-b;
a=a-b;
}
rem=a%b;
while(rem>0)
{
a=b;
b=rem;
rem=a%b;
}
if(rem==0)
return b;
else
return rem;
}
int main()
{
/*LCM(a,b) = a*b/GCD(a,b)*/
cout<<"\nENTER THE NUMBER OF NUMBERS\n\t\t?=";
long no,i,num[1000];
cin>>no;
for(i=1;i<=no;i++)
{
cout<<"\nENTER TERM "<<i<<" \t?=";
cin>>num[i];
}
int lcm;
lcm=num[1]*num[2]/gcd(num[1],num[2]);
for(i=3;i<=no;i++)
lcm=lcm*num[i]/gcd(lcm,num[i]);
cout<<"\n\nLEAST COMMON MULTIPLE = "<<lcm;
return 0;
}
Találtam egy egyszerűbbet, mert az előzőt nemhiszem, hogy elfogadja a tanár. Ez a legegyszerűbb nem?
#include <iostream>
using namespace std;
int main() {
int n1, n2, max;
cout << "Enter two numbers: ";
cin >> n1 >> n2;
max = (n1 > n2) ? n1 : n2; // maximum value between n1 and n2 is stored in max
do {
if (max%n1 == 0 && max%n2 == 0) {
cout << "LCM = " << max;
break;
}
else
++max;
}
while (true);
return 0;
}










Ha akarod átírhatod template funkcióra, hogy működjön short, long stb. típussal illetve specializálhatod lebegőpontos számokra (float, double):
#include <iostream>
int gcd(int a, int b);
int lcm(int a, int b);
int main()
{
using std::cout;
cout << gcd(5,10) << '\n';
cout << lcm(5,10) << '\n';
return 0;
}
int gcd(int a, int b)
{
while ( true )
{
if (a == 0)
return b;
b %= a;
if (b == 0)
return a;
a %= b;
}
}
int lcm(int a, int b)
{
return a / gcd(a,b) * b;
}





Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!