// Функция для вычисления числа Фибоначчи uint64_t fibonacci(uint64_t n, int overflow) { if (n == 0) return 0; if (n == 1) return 1;
uint64_t a = 0, b = 1, temp; for (uint64_t i = 2; i <= n; i++) { if (b > UINT64_MAX - a) { // Проверка на переполнение overflow = 1; return 0; } temp = a + b; a = b; b = temp; } return b; }
// Функция для вычисления факториала uint64_t factorial(uint64_t n, int overflow) { if (n == 0 || n == 1) return 1;
uint64_t result = 1; for (uint64_t i = 2; i <= n; i++) { if (result > UINT64_MAX / i) { // Проверка на переполнение overflow = 1; return 0; } result = i; } return result; }
int main(int argc, char argv[]) { if (argc != 2) { fprintf(stderr, "Использование: %s <число>\n", argv[0]); return EXIT_FAILURE; }
uint64_t fibonacci(uint64_t n, int overflow) { if (n == 0) return 0; if (n == 1) return 1;
uint64_t a = 0, b = 1, temp; for (uint64_t i = 2; i <= n; i++) { if (b > UINT64_MAX - a) { overflow = 1; return 0; } temp = a + b; a = b; b = temp; } return b; }
uint64_t factorial(uint64_t n, int overflow) { if (n == 0 || n == 1) return 1;
uint64_t result = 1; for (uint64_t i = 2; i <= n; i++) { if (result > UINT64_MAX / i) { overflow = 1; return 0; } result = i; } return result; }
int main(int argc, char argv[]) { if (argc != 2) { fprintf(stderr, "Использование: %s <число>\n", argv[0]); return EXIT_FAILURE; }