Introduction
Lektion 13 von 20 im Kurs Mathematische Rätsel von Coddy.
Das kleinste gemeinsame Vielfache von zwei ganzen Zahlen x und y, üblicherweise als LCM(x,y) bezeichnet, ist die kleinste positive ganze Zahl, die durch sowohl x als auch y teilbar ist.
Zum Beispiel:
- LCM(24, 16) = 48
- LCM(3, 5) = 15
- LCM(4, 6) = 12.
Es wird verwendet, um Brüche zu addieren.
Beispiel: 7/24+5/16 = 7 * (2/48) + 5 * (3/48) = (14+15) / 48 = 29/48.
Es wird verwendet, um herauszufinden, wann sich bestimmte Paare mit spezifischen Perioden wieder treffen. Beispiel: Dan kommt jede dritte Nacht zum Biertrinken, und John jede vierte. Somit werden sie sich alle 12 Nächte treffen.
Es ist mit dem größten gemeinsamen Teiler verbunden über:
LCM(x, y) = (x * y) / GCD(x, y)
Aufgabe
EinfachSchreiben Sie eine Funktion calcLCM, die einen Vektor aus zwei Ganzzahlen, v, erhält und die kleinste Zahl berechnet, die durch jede der Zahlen ohne Rest teilbar ist.
Probier es selbst
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"
int main() {
int v[4096];
int vn = 0;
char line[65536];
if (!fgets(line, sizeof(line), stdin)) line[0] = '\0';
char* tok = strtok(line, " \t\r\n");
while (tok) { v[vn++] = atoi(tok); tok = strtok(NULL, " \t\r\n"); }
int r = calcLCM(v, vn);
printf("%d\n", r);
return 0;
}