1.
-
mümkündür,
aşağıdaki basit program vesilesiyle:
ilk prompt:
gedit buyukcarpim.c
kaynak kodu:
#include <stdio.h>
#include <gmp.h>
#include <stdlib.h>
#include <time.h>
// Rastgele 1 milyar haneli bir sayı üreten fonksiyon
void generate_random_number(mpz_t num, int digits) {
char *str = malloc(digits + 1);
str[0] = '1' + (rand() % 9); // ilk rakam 0 olamaz
for (int i = 1; i < digits; i++) {
str[i] = '0' + (rand() % 10);
}
str[digits] = '\0';
mpz_set_str(num, str, 10);
free(str);
}
int main() {
mpz_t num1, num2, result;
mpz_inits(num1, num2, result, NULL);
srand(time(NULL)); // Rastgele sayı üreteci için tohum
// 1 milyar haneli iki rastgele sayı üret
generate_random_number(num1, 1000000000);
generate_random_number(num2, 1000000000);
// Sayıları çarp
mpz_mul(result, num1, num2);
// Sonuçları ekrana yazdır
gmp_printf("Sayı 1: %Zd\n\n", num1);
gmp_printf("Sayı 2: %Zd\n\n", num2);
gmp_printf("Çarpım Sonucu: %Zd\n", result);
// Belleği temizle
mpz_clears(num1, num2, result, NULL);
return 0;
}
derle:
gcc -o buyukcarpim buyukcarpim.c -lgmp
çalıştır:
/buyukcarpim