1
0
Fork 0
projecteuler/03.c

27 lines
600 B
C

#include <stdlib.h>
#include <stdio.h>
#include <math.h>
long long largestPrimeFactor(long long n) {
if (n == 1 || n == 2)
return n;
long long m = sqrt(n);
for (long long i = 2; i <= m; i++) {
if (n % i == 0) {
long long f1 = largestPrimeFactor(i);
long long f2 = largestPrimeFactor(n/i);
if (f1 > f2)
return f1;
else
return f2;
}
}
return n;
}
int main(int argc, char* argv[]) {
long long n = atoll(argv[1]);
printf("%d\n", largestPrimeFactor(n));
return 0;
}