Условие задачи

В файле task.in даны два целых положительных числа.
Записать в файл task.out наименьшее общее кратное этих чисел.

#include <stdio.h>

unsigned long long gcd(unsigned long long a, unsigned long long b) {
    unsigned long long result;
    
    if ( b == 0 ) {
        return a;
    }
    result = a % b;
    
    return gcd(b, result);
}

unsigned long long lcm(unsigned long long x, unsigned long long y) {
    return x * y / gcd(x, y);
}

int main() {
    FILE *in = fopen("task.in", "r");
    FILE *out = fopen("task.out", "w");
    unsigned long long x, y;
    
    fscanf(in, "%llu %llu", &x, &y);
    fclose(in);
    
    fprintf(out, "%llu\n", lcm(x, y));
    fclose(out);
    
}