Ich habe versucht, die lcm von zwei Zahlen zu finden und für einen der Eingabefälle (28851539 und 1183019) mein Programm einen negativen Wert zurückgibt. Anscheinend ist es nicht in der Lage zu berechnen (28851529 * 1183019)/9.Berechnung der Ziffern in 10^9 in C++
#include <iostream>
long long gcd(int a, int b) {
long long int temp;
if(a%b==0)
{
return b;
}
else
{
temp=a%b;
return gcd(b,temp);
}
}
long long lcm(int a, int b , int g) {
//std::cout<<g;
long long int f=(a*b)/g;
return f;
}
int main() {
long long int a, b;
std::cin >> a >> b;
long long int g = gcd(a,b);
long long int q=lcm(a, b, g);
std::cout << q << std::endl;
return 0;
}
Wie berechne ich das genau?
Danke, das war eine große Hilfe. –
Ich würde nur das hinzufügen [Link auf Integer Overflow ...] (https://en.wikipedia.org/wiki/Integer_overflow) – Charles
@ c650 Danke für den Link. Ich habe diesen Satz umformuliert, weil ich ihn nicht mochte und den Link eingefügt habe. – NathanOliver