Arithmetic FunctionsPerfect numbersnumtheory[sigma](49);for n from 1 to 1000000 do
if numtheory[sigma](n) = 2*n then
print(n)
end if;
end do;
select(x->evalb(numtheory[sigma][1](x) = 2*x),[seq(i,i = 1 .. 100000)]);for k from 1 to 10 do
n := ithprime(k):
if isprime(2^n-1) then
print([n, 2^(n-1)*(2^n-1)])
end if;
end do:
The group of arithmetic functionsdivisorsigma:=proc(n)
local d, i;
d:=2;
for i from 2 to floor(n/2) do
if type(n/i,integer) then d:=d+1 end if;
end do;
d;
end proc:divisorsigma(49);Mobius inversionnumtheory[mobius](30);Application: Cyclotomic polynomialsnumtheory[cyclotomic](4,z);factor(z^4-1);numtheory[cyclotomic](8,z);numtheory[cyclotomic](15,z);Partitions of an integern:=100:
for i from 1 to n do
p(i,1):=1;
par(i):=1;
for j from 2 to i do
if i-j>=j then
p(i,j):=p(i-1,j-1)+p(i-j,j);
else
p(i,j):=p(i-1,j-1);
end if;
par(i):=par(i)+p(i,j);
end do:
end do:
Matrix(10,p);seq(par(n),n=1..100);
seq([j,coeff(product(1-x^k,k=1..50),x,j)],j=1..50);p(0):=1:
for n from 1 to 1000 do
p(n):=0;
k:=1;
while (n-k*(3*k-1)/2) >= 0 do
p(n):=p(n)+p(n-k*(3*k-1)/2)*(-1)^(k+1);
k:=k+1;
end do;
k:=1;
while (n-k*(3*k+1)/2) >= 0 do
p(n):=p(n)+p(n-k*(3*k+1)/2)*(-1)^(k+1);;
k:=k+1;
end do;
end do:seq(p(n),n=1..10);p(1000);TTdSMApJM1JUQUJMRV9TQVZFLzYzMDkyNFgsJSlhbnl0aGluZ0c2IjYiW2dsISIlISEhI19xIisiKyIiIkYnRidGJ0YnRidGJ0YnRidGJy0lKHVuCmtub3duRzYkRiciIiNGJ0YnRitGKyIiJEYsIiIlRi0iIiYtRik2JEYnRiwtRik2JEYrRixGJ0YnRitGLEYtRi4iIigiIiktRik2JEYnRi0KLUYpNiRGK0YtLUYpNiRGLEYtRidGJ0YrRixGLiIiJyIiKi1GKTYkRidGLi1GKTYkRitGLi1GKTYkRixGLi1GKTYkRi1GLkYnRidGK0YsRgouRjMtRik2JEYnRjstRik2JEYrRjstRik2JEYsRjstRik2JEYtRjstRik2JEYuRjtGJ0YnRitGLEYuLUYpNiRGJ0YzLUYpNiRGK0YzLUYpCjYkRixGMy1GKTYkRi1GMy1GKTYkRi5GMy1GKTYkRjtGM0YnRidGK0YsLUYpNiRGJ0Y0LUYpNiRGK0Y0LUYpNiRGLEY0LUYpNiRGLUY0LUYKKTYkRi5GNC1GKTYkRjtGNC1GKTYkRjNGNEYnRidGKy1GKTYkRidGPC1GKTYkRitGPC1GKTYkRixGPC1GKTYkRi1GPC1GKTYkRi5GPC1GKQo2JEY7RjwtRik2JEYzRjwtRik2JEY0RjxGJ0YnLUYpNiRGJyIjNS1GKTYkRitGZXAtRik2JEYsRmVwLUYpNiRGLUZlcC1GKTYkRi5GZXAtCkYpNiRGO0ZlcC1GKTYkRjNGZXAtRik2JEY0RmVwLUYpNiRGPEZlcEYnNiIK