Сегодня смотрел задачу про последние десять цифр выражения
1^1 + 2^2 + ... + n^n
. В данном случае
интуитивно, я не математик, понятно, что модуль должен быть
@mod = power(10, 10)
, а Wikipedia приводит в примерах
595^703 (mod 991)
.
Вопрос: что может дать выбор модуля
991
? Как и какие модули используются на практике?
Псевдо-SQL для привлечения внимания:
function dbo.ufnModPow (@number numeric, @exp numeric, @mod numeric)
returns numeric
as
begin
declare @e numeric = 1
declare @c numeric = 1
while @e < @exp + 1
begin
set @c = (@c * @number) % @mod
set @e = @e + 1
end
return @c
end
while @curr < @number + 1
begin
set @sum = @sum + dbo.ufnModPow (@curr, @curr, @mod)
set @curr = @curr + 1
end
print @sum