Update UnsignedInt64_Factorization
+27 −5 · 1 file changed
-
UnsignedInt64_Factorization+27 −5
@@ -3,6 +3,8 @@ #include "stdafx.h" #include "math.h" +#include <time.h> +#include <windows.h> @@ -24,7 +26,7 @@ unsigned long long int number_sum(unsigned long long int is_3_div) int sum = 0; while (is_3_div != 0) { - sum += is_3_div % 10; + sum = sum + is_3_div % 10; is_3_div = is_3_div / 10; } @@ -72,31 +74,51 @@ void rest_factors(unsigned long long int &number, unsigned long long int divs[], rest_factors(number, divs, div_n); } } + } int main() { + + unsigned long long int big_number, factors[100], num_div=0; printf("Enter number: "); scanf_s("%I64u", &big_number); - printf("Number is: %I64u\n", big_number); + printf("Number is: %I64u\n", big_number); + + DWORD dw1 = GetTickCount(); process_2(big_number, factors, num_div); process_3(big_number, factors, num_div); process_5(big_number, factors, num_div); - rest_factors(big_number, factors, num_div); + + + if (big_number > 1) + { + rest_factors(big_number, factors, num_div); + if (big_number != 1) + { + factors[num_div] = big_number; + num_div++; + } + + } - printf("Biggest factor is: %I64u\n", big_number); + printf("Biggest factor is: %I64u\n", factors[num_div-1]); - printf("Number of factors: %I64u\nDivisors: %I64u ", num_div + 1, big_number); + printf("Number of factors: %I64u\nDivisors: ", num_div); for (unsigned long long int i = 0; i < num_div; i++) { printf("%I64u ",factors[num_div - i - 1]); } printf("\n"); + DWORD dw2 = GetTickCount(); + + printf("Time difference is %lu milliSeconds\nStart: %lu\nEnd: %lu\n", dw2 - dw1, dw2, dw1); + return 0; }