Да, но почему вы решили что это логарифм?
Спасибо, был не прав. А они сволочи! Переобзывать распространённые функции.
Кстати, как коротко записать
n=2*3*5*7;
Если для себя в тексте, то 7# (оно же 8#,9#,10#, но с составными обычно не употребляется), если в программе, то
n=vecprod(primes(4)) (штук) или
n=vecpod(primes([2,7])) (диапазон) (возможны и другие варианты, но этот даёт сразу точно целое число).
Даже если не дают сделать массив длиннее 16млн элементов, то можно в каждый элемент положить длинное число или структуру и хранить в них много данных, или использовать матрицы:
Код:
? default(parisize,2^30);
*** Warning: new stack size = 1073741824 (1024.000 Mbytes).
? v=vector(1000000); sizebyte(v)
%1 = 12000004
? v=vector(1000000,i,10^999+i^2); sizebyte(v)
%2 = 428000004
? v=vector(1000000,i,vectorsmall(100,j,10^9+i+j^3)); sizebyte(v)
%3 = 408000004
? v=matrix(1000000,70); sizebyte(v)
%4 = 840000564
При использовании степеней двойки деление общего индекса на два поля будет быстрым.