long gcd_elem_school(long m, long n) { long factors_m[64]; int size_m = (int)(sizeof(factors_m) / sizeof(long)); long factors_n[64]; int size_n = (int)(sizeof(factors_n) / sizeof(long)); int i, j, jj; long gcd = 1; primefactors(m, factors_m, &size_m); primefactors(n, factors_n, &size_n); jj = 0; for (i = 0; i < size_m; i++) { for (j = jj; j < size_n; j++) { if (factors_m[i] == factors_n[j]) { gcd *= factors_n[j]; jj = j + 1; break; } } } return gcd; }
long lcm_middle_school(long m, long n) { long factors_m[64]; int size_m = (int)(sizeof(factors_m) / sizeof(long)); long factors_n[64]; int size_n = (int)(sizeof(factors_n) / sizeof(long)); int i, j, found; long lcm = 1; primefactors(m, factors_m, &size_m); primefactors(n, factors_n, &size_n); for (i = 0; i < size_m; i++) { found = 0; for (j = 0; j < size_n; j++) { if (factors_m[i] == factors_n[j]) { found = 1; break; } } lcm *= factors_m[i]; if (found) factors_n[j] = 1; } for (j = 0; j < size_n; j++) if (factors_n[j] != 1) lcm *= factors_n[j]; return lcm; }
int main() { int number; printf("\n Enter the number to find the factors :"); scanf("%d",&number); primefactors(number); return 0; }