Arithmetic Functions
<Text-field layout="_pstyle4" style="_pstyle4">Perfect numbers</Text-field>numtheory[sigma](49);NiMiI2Q=for n from 1 to 1000000 do if numtheory[sigma](n) = 2*n then print(n) end if; end do; NiMiIic=NiMiI0c=NiMiJCdcNiMiJUciKQ==Warning, computation interruptedselect(x->evalb(numtheory[sigma][1](x) = 2*x),[seq(i,i = 1 .. 100000)]);NiM3JiIiJyIjRyIkJ1wiJUciKQ==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: NiM3JCIiIyIiJw==NiM3JCIiJCIjRw==NiM3JCIiJiIkJ1w=NiM3JCIiKCIlRyIpNiM3JCIjOCIpTy5iTA==NiM3JCIjPCIrYyFwKSplKQ==NiM3JCIjPiItRzhwUXU4
<Text-field layout="_pstyle4" style="_pstyle4">The group of arithmetic functions</Text-field>divisorsigma:=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);NiMiIiQ=
<Text-field layout="_pstyle4" style="_pstyle4">Mobius inversion</Text-field>numtheory[mobius](30);NiMhIiI=
<Text-field layout="Heading 1" style="Heading 1">Application: Cyclotomic polynomials</Text-field>numtheory[cyclotomic](4,z);NiMsJiokSSJ6RzYiIiIjIiIiRihGKA==factor(z^4-1);NiMqKCwmSSJ6RzYiIiIiISIiRidGJywmRiVGJ0YnRidGJywmKiRGJSIiI0YnRidGJ0Ynnumtheory[cyclotomic](8,z);NiMsJiokSSJ6RzYiIiIlIiIiRihGKA==numtheory[cyclotomic](15,z);NiMsMCokSSJ6RzYiIiIpIiIiKiRGJSIiKCEiIiokRiUiIiZGKCokRiUiIiVGKyokRiUiIiRGKEYlRitGKEYo
<Text-field firstindent="0.0" layout="Heading 1" leftmargin="0.0" linebreak="space" rightmargin="0.0" style="Heading 1"><Font executable="false" foreground="[0,0,0]" italic="false" underline="false">Partitions of an integer</Font></Text-field>n:=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);NiMtSSdSVEFCTEVHNiI2JSInQzRqLUknTUFUUklYR0YlNiM3LDcsIiIiLUkodW5rbm93bkdGJTYkRi0iIiMtRi82JEYtIiIkLUYvNiRGLSIiJS1GLzYkRi0iIiYtRi82JEYtIiInLUYvNiRGLSIiKC1GLzYkRi0iIiktRi82JEYtIiIqLUYvNiRGLSIjNTcsRi1GLS1GLzYkRjFGNC1GLzYkRjFGNy1GLzYkRjFGOi1GLzYkRjFGPS1GLzYkRjFGQC1GLzYkRjFGQy1GLzYkRjFGRi1GLzYkRjFGSTcsRi1GLUYtLUYvNiRGNEY3LUYvNiRGNEY6LUYvNiRGNEY9LUYvNiRGNEZALUYvNiRGNEZDLUYvNiRGNEZGLUYvNiRGNEZJNyxGLUYxRi1GLS1GLzYkRjdGOi1GLzYkRjdGPS1GLzYkRjdGQC1GLzYkRjdGQy1GLzYkRjdGRi1GLzYkRjdGSTcsRi1GMUYxRi1GLS1GLzYkRjpGPS1GLzYkRjpGQC1GLzYkRjpGQy1GLzYkRjpGRi1GLzYkRjpGSTcsRi1GNEY0RjFGLUYtLUYvNiRGPUZALUYvNiRGPUZDLUYvNiRGPUZGLUYvNiRGPUZJNyxGLUY0RjdGNEYxRi1GLS1GLzYkRkBGQy1GLzYkRkBGRi1GLzYkRkBGSTcsRi1GN0Y6RjpGNEYxRi1GLS1GLzYkRkNGRi1GLzYkRkNGSTcsRi1GN0ZARj1GOkY0RjFGLUYtLUYvNiRGRkZJNyxGLUY6RkNGRkZARjpGNEYxRi1GLUknTWF0cml4RzYkSSpwcm90ZWN0ZWRHRmdySShfc3lzbGliR0Ylseq(par(n),n=1..100); NmBxIiIiIiIjIiIkIiImIiIoIiM2IiM6IiNBIiNJIiNVIiNjIiN4IiQsIiIkTiIiJHciIiRKIyIkKEgiJCZRIiQhXCIkRiciJCN6IiUtNSIlYjciJXY6IiVlPiIlT0MiJTVJIiU9UCIlbFgiJS9jIiVVbyIlXCQpIiZWLCIiJjVCIiImJClbIiImeHoiIiZQOyMiJjpnIyImJj1KIiZRdCQiJiRlVyImdUomIiZoSyciJnZeKCImTSIqKSInZWI1IidhWjciJ3RzOSInRE48IidFVT8iJ1YqUiMiJyplIkciJ0oqSCQiJ2JoUSIndzdYIidCb18iJ2FUaCInP19yIic/PSQpIiduaycqIigwOjciIihjLEkiIigqXDA6IihJO3UiIihlRCwjIig/TksjIigqb3pFIihOeDMkIihYVmIkIihvejMlIigwc3AlIigkeSNSJiIoKm8mPSciKCsmKjMoIihrIz0iKSIoIjQqRyoiKWopPjEiIilrQDg3IildJ1tRIiIpd2t6OiIpRlYrPSIpYmldPyIpcCVRTCMiKWdPYUUiKWR0O0kiKWlIRU0iKXR3KSlRIik0IjNUJSIpRGYqKlwiKXRUamMiKWZCNmsiKTJRYHMiKXgsLCMpIik/KHBFKiIqPjlsLyIiKi9WNj0iIipJNEJMIiIqTyIpPl0iIip2KUgjcCIiKiNIcDA+seq([j,coeff(product(1-x^k,k=1..50),x,j)],j=1..50);NlQ3JCIiIiEiIjckIiIjRiU3JCIiJCIiITckIiIlRio3JCIiJkYkNyQiIidGKjckIiIoRiQ3JCIiKUYqNyQiIipGKjckIiM1Rio3JCIjNkYqNyQiIzdGJTckIiM4Rio3JCIjOUYqNyQiIzpGJTckIiM7Rio3JCIjPEYqNyQiIz1GKjckIiM+Rio3JCIjP0YqNyQiI0BGKjckIiNBRiQ3JCIjQkYqNyQiI0NGKjckIiNERio3JCIjRUYkNyQiI0ZGKjckIiNHRio3JCIjSEYqNyQiI0lGKjckIiNKRio3JCIjS0YqNyQiI0xGKjckIiNNRio3JCIjTkYlNyQiI09GKjckIiNQRio3JCIjUUYqNyQiI1JGKjckIiNTRiU3JCIjVEYqNyQiI1VGKjckIiNWRio3JCIjV0YqNyQiI1hGKjckIiNZRio3JCIjWkYqNyQiI1tGKjckIiNcRio3JCIjXUYqp(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);NiwiIiIiIiMiIiQiIiYiIigiIzYiIzoiI0EiI0kiI1U=p(1000);NiMiQSIqenNcQHB0Q2lLUyd5WWhTIw==
TTdSMApJM1JUQUJMRV9TQVZFLzYzMDkyNFgsJSlhbnl0aGluZ0c2IjYiW2dsISIlISEhI19xIisiKyIiIkYnRidGJ0YnRidGJ0YnRidGJy0lKHVuCmtub3duRzYkRiciIiNGJ0YnRitGKyIiJEYsIiIlRi0iIiYtRik2JEYnRiwtRik2JEYrRixGJ0YnRitGLEYtRi4iIigiIiktRik2JEYnRi0KLUYpNiRGK0YtLUYpNiRGLEYtRidGJ0YrRixGLiIiJyIiKi1GKTYkRidGLi1GKTYkRitGLi1GKTYkRixGLi1GKTYkRi1GLkYnRidGK0YsRgouRjMtRik2JEYnRjstRik2JEYrRjstRik2JEYsRjstRik2JEYtRjstRik2JEYuRjtGJ0YnRitGLEYuLUYpNiRGJ0YzLUYpNiRGK0YzLUYpCjYkRixGMy1GKTYkRi1GMy1GKTYkRi5GMy1GKTYkRjtGM0YnRidGK0YsLUYpNiRGJ0Y0LUYpNiRGK0Y0LUYpNiRGLEY0LUYpNiRGLUY0LUYKKTYkRi5GNC1GKTYkRjtGNC1GKTYkRjNGNEYnRidGKy1GKTYkRidGPC1GKTYkRitGPC1GKTYkRixGPC1GKTYkRi1GPC1GKTYkRi5GPC1GKQo2JEY7RjwtRik2JEYzRjwtRik2JEY0RjxGJ0YnLUYpNiRGJyIjNS1GKTYkRitGZXAtRik2JEYsRmVwLUYpNiRGLUZlcC1GKTYkRi5GZXAtCkYpNiRGO0ZlcC1GKTYkRjNGZXAtRik2JEY0RmVwLUYpNiRGPEZlcEYnNiIK