#include <stdio.h>
#include <stdbool.h>
int osztok[20][20] = {0};
int biggest_numbers[20] = {0};
bool is_prime(int n) {
if (n == 2) return true;
if (n % 2 == 0) return false;
for (int i = 2; i <= n / 2; i++) {
if (n % i == 0) return false;
}
return true;
}
int multiply() {
for (int i = 0; i < 20; i++) {
if (is_prime(i + 1)) {
int k = 0;
while (osztok[i][k] == 0) {
if (k > biggest_numbers[i]) biggest_numbers[i] = k;
printf("b: %i\n", biggest_numbers
[i
]); printf("[%i][%i] %i\n", i
, k
, osztok
[i
][k
]); k++;
}
//printf("k: %i\n", k);
}
}
}
int main() {
for (int i = 1; i <= 20; i++) {
int orig_number = i;
int number = i;
int k = 0;
for (int j = 2; j <= i; j++) {
while ((number % j == 0) && is_prime(j)) {
osztok[i-1][k] = j;
++k;
number = number / j;
}
}
}
/*for (int i = 0; i < 20; i++) {
printf("%i: ", i+1);
for (int j = 0; j <20; j++)
if (osztok[i][j] != NULL) printf("%i\t", osztok[i][j]);
printf("\n");
}*/
multiply();
//printf("%i", biggest_numbers[2]);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRib29sLmg+CgppbnQgb3N6dG9rWzIwXVsyMF0gPSB7MH07CmludCBiaWdnZXN0X251bWJlcnNbMjBdID0gezB9OwoKYm9vbCBpc19wcmltZShpbnQgbikgewogICAgaWYgKG4gPT0gMikgcmV0dXJuIHRydWU7CiAgICBpZiAobiAlIDIgPT0gMCkgcmV0dXJuIGZhbHNlOwogICAgZm9yIChpbnQgaSA9IDI7IGkgPD0gbiAvIDI7IGkrKykgewogICAgICAgIGlmIChuICUgaSA9PSAwKSByZXR1cm4gZmFsc2U7CiAgICB9CiAgICByZXR1cm4gdHJ1ZTsKfQoKaW50IG11bHRpcGx5KCkgewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7CiAgICAgICAgaWYgKGlzX3ByaW1lKGkgKyAxKSkgewogICAgICAgICAgICBpbnQgayA9IDA7CiAgICAgICAgICAgIHdoaWxlIChvc3p0b2tbaV1ba10gPT0gMCkgewogICAgICAgICAgICAgICAgaWYgKGsgPiBiaWdnZXN0X251bWJlcnNbaV0pIGJpZ2dlc3RfbnVtYmVyc1tpXSA9IGs7CiAgICAgICAgICAgICAgICBwcmludGYoImI6ICVpXG4iLCBiaWdnZXN0X251bWJlcnNbaV0pOwogICAgICAgICAgICAgICAgcHJpbnRmKCJbJWldWyVpXSAlaVxuIiwgaSwgaywgb3N6dG9rW2ldW2tdKTsKICAgICAgICAgICAgICAgIGsrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICAvL3ByaW50ZigiazogJWlcbiIsIGspOwogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSAyMDsgaSsrKSB7CiAgICAgICAgaW50IG9yaWdfbnVtYmVyID0gaTsKICAgICAgICBpbnQgbnVtYmVyID0gaTsKICAgICAgICBpbnQgayA9IDA7CiAgICAgICAgZm9yIChpbnQgaiA9IDI7IGogPD0gaTsgaisrKSB7CiAgICAgICAgICAgIHdoaWxlICgobnVtYmVyICUgaiA9PSAwKSAmJiBpc19wcmltZShqKSkgewogICAgICAgICAgICAgICAgb3N6dG9rW2ktMV1ba10gPSBqOwogICAgICAgICAgICAgICAgKytrOwogICAgICAgICAgICAgICAgbnVtYmVyID0gbnVtYmVyIC8gajsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIC8qZm9yIChpbnQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7CiAgICAgICAgcHJpbnRmKCIlaTogIiwgaSsxKTsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8MjA7IGorKykKICAgICAgICAgICAgaWYgKG9zenRva1tpXVtqXSAhPSBOVUxMKSBwcmludGYoIiVpXHQiLCBvc3p0b2tbaV1bal0pOwogICAgICAgIHByaW50ZigiXG4iKTsKICAgIH0qLwogICAgbXVsdGlwbHkoKTsKICAgIC8vcHJpbnRmKCIlaSIsIGJpZ2dlc3RfbnVtYmVyc1syXSk7CiAgICByZXR1cm4gMDsKfQ==