1 milyar basamaklı rastgele sayıları seçip çarpmak

entry2 galeri
    1.
  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
    0 ...