int main(int argc, char **argv)
{
int i;
unsigned long long int number;
for (i = 1; i < argc; i++) {
number = strtoull(argv[i], NULL, 10);
facs(number);
}
return 0;
}
void facs(unsigned long long int number)
{
int i = 0;
unsigned long long int factors[64], factor = 2, orignum = number;
if (number < 2) {
printf("%llu: n/a\n", orignum);
return;
}
while (factor <= (sqrt(number) + 1)) {
if (number % factor == 0) {
factors[i++] = factor;
number /= factor;
} else {
factor++;
}
}
if (number != 1) factors[i++] = number;
factors[i] = 0;
printf("%llu: ", orignum);
i = 0;
if (orignum == number)
printf("prime");
else
while (factors[i])
printf("%llu ", factors[i++]);
printf("\n");
return;
}