Linux c decomposition prime factor, linux decomposition prime factor
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <math.h> 5 6 int main(int argc, char **argv) 7 { 8 unsigned long long data = 0, i = 0, max = 0; 9 10 if (argc < 2)11 {12 printf("argument error\n");13 return -1;14 }15 16 if (strlen(argv[1]) > 19)17 {18 printf("out of range\n");19 return -1;20 }21 22 data = atoll(argv[1]);23 24 if (9223372036854775807ULL == data && ('8' == argv[1][18] || '9' == argv[1][18]))25 {26 printf("out of range\n");27 return -1;28 }29 30 printf("data : %llu\n", data);31 while (1)32 {33 max = sqrt(data);34 for (i = 2; i <= max; i++)35 {36 if (0 == (data % i))37 {38 data = data / i;39 printf("%llu * ", i);40 fflush(stdout);41 break;42 }43 }44 45 if (i > max)46 {47 printf("%llu", data);48 break;49 }50 }51 printf("\n");52 53 return 0;54 }
The quality factor of the numbers below 2 ^ 64-1 is realized,
An error occurred while compiling the undefined reference to 'sqrt'
Man:-lm is required during compilation.