Menentukan Faktor Nombor Besar
Pengiraan pemfaktoran menimbulkan cabaran apabila keputusan melebihi had jenis data asli. Artikel ini membentangkan teknik untuk mengira pemfaktoran integer yang besar secara sewenang-wenangnya, mendedahkan semua digit dalam penyelesaian.
Simulasi Pengiraan Manual
Jika tiada perpustakaan luaran seperti GMP , kita mesti meniru proses pengiraan faktorial manual menggunakan tatasusunan integer. Tatasusunan ini mewakili nombor yang besar, dengan setiap indeks memegang satu digit.
Algoritma Pengiraan Faktor
Untuk nombor n, faktorial dikira seperti berikut:
Contoh Pelaksanaan
Kod C yang disediakan melaksanakan algoritma di atas:
#include <iostream> #include <cstring> int max = 5000; void display(int arr[]) { int ctr = 0; for (int i = 0; i < max; i++) { if (!ctr && arr[i]) ctr = 1; if (ctr) std::cout << arr[i]; } } void factorial(int arr[], int n) { if (!n) return; int carry = 0; for (int i = max - 1; i >= 0; --i) { arr[i] = (arr[i] * n) + carry; carry = arr[i] / 10; arr[i] %= 10; } factorial(arr, n - 1); } int main() { int *arr = new int[max]; std::memset(arr, 0, max * sizeof(int)); arr[max - 1] = 1; int num; std::cout << "Enter the number: "; std::cin >> num; std::cout << "Factorial of " << num << " is :\n"; factorial(arr, num); display(arr); delete[] arr; return 0; }
Atas ialah kandungan terperinci Bagaimanakah Kita Boleh Mengira Faktor Nombor Besar Sewenang-wenangnya Tanpa Perpustakaan Luaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!