Так что сгенерировать 50 мегабайт случайного бреда - более-менее легко, а вот сделать из него число разрядностью

млн. бит - трудно.
А... оказалось что в pari/gp можно генерить случайные числа любого размера

А я почему-то думал что

максимум. Не знаю почему я так думал.
Ну, в общем,
Код:
? a=random(10^(10^8));b=random(10^(10^8));
? ##
*** last result computed in 3,162 ms.
? c=a*b;
? ##
*** last result computed in 2,366 ms.
? log(c)/log(10)
%10 = 199999999.57713489111468590207305590809
?
Генерация двух случайных чисел 3 секунды, перемножение 2 секунды. Планшет андроид, CPU Qualcomm Snapdragon 8 Gen 1