2. Amicable numbers

Search program for amicable numbers

Using fnSigma(N) subroutine, we try to find amicable numbers up to smaller number less than 1010.

 10   '
 20   for M=2 to 10^9
 30     N=fnSigma(M)-M:if N<=M then 50
 40     R=fnSigma(N)-N:if R=M then print M,N
 50   next M
 60   end
 70   fnSigma(N)
 80   local W,S,P
 90   S=1
100   W=1:P=prmdiv(N)
110   if N@P=0 then W=W*P+1:N=N\P:goto 110 else S=S*W
120   if N>1 then 100 else return(S)

The "if" condition in the line 30 is the rule for omitting perfect numbers.
 
There are 1427 amicable pairs which smaller number is less than 1010.


previous index next

E-mail : kc2h-msm@asahi-net.or.jp
Hisanori Mishima