41 lines
512 B
Text
41 lines
512 B
Text
CARD FUNC DivisorCount(CARD n)
|
|
CARD result,p,count
|
|
|
|
result=1
|
|
WHILE (n&1)=0
|
|
DO
|
|
result==+1
|
|
n=n RSH 1
|
|
OD
|
|
|
|
p=3
|
|
WHILE p*p<=n
|
|
DO
|
|
count=1
|
|
WHILE n MOD p=0
|
|
DO
|
|
count==+1
|
|
n==/p
|
|
OD
|
|
result==*count
|
|
p==+2
|
|
OD
|
|
|
|
IF n>1 THEN
|
|
result==*2
|
|
FI
|
|
RETURN (result)
|
|
|
|
PROC Main()
|
|
CARD n=[1],max=[100],count=[0],divCount
|
|
|
|
WHILE count<max
|
|
DO
|
|
divCount=DivisorCount(n)
|
|
IF n MOD divCount=0 THEN
|
|
PrintC(n) Put(32)
|
|
count==+1
|
|
FI
|
|
n==+1
|
|
OD
|
|
RETURN
|