I want to solve this problem: https://projecteuler.net/problem=3 by this program, but I'm not sure its true way to use long long int.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
long long int result = factors(6051475143);
printf("%lld", result);
return 0;
}
void factors(int number) {
int factor[100000];
int index = 0, i = 1;
for (; i < number; i++) {
if (number % i == 0) {
factor[index] = i;
index += 1;
}
}
findprime(factor, 100000);
}
int findprime(int prime[], int size) {
int i = 0, j;
long long int latestprime;
for(; i < size; i++) {
if (prime[i] == 0)
break;
int is_prime = 1;
for (j = 2; j < prime[i]; j++) {
if (prime[i] % j == 0 && prime[i] != j) {
is_prime = 0;
break;
}
}
if (is_prime == 1)
latestprime = prime[i];
}
return latestprime;
}
If I try 10-digit number it works but when I try a 12-digit number it returns zero.