Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
75
Task/Proper-divisors/GFA-Basic/proper-divisors.basic
Normal file
75
Task/Proper-divisors/GFA-Basic/proper-divisors.basic
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
OPENW 1
|
||||
CLEARW 1
|
||||
'
|
||||
' Array f% is used to hold the divisors
|
||||
DIM f%(SQR(20000)) ! cannot redim arrays, so set size to largest needed
|
||||
'
|
||||
' 1. Show proper divisors of 1 to 10, inclusive
|
||||
'
|
||||
FOR i%=1 TO 10
|
||||
num%=@proper_divisors(i%)
|
||||
PRINT "Divisors for ";i%;":";
|
||||
FOR j%=1 TO num%
|
||||
PRINT " ";f%(j%);
|
||||
NEXT j%
|
||||
PRINT
|
||||
NEXT i%
|
||||
'
|
||||
' 2. Find (smallest) number <= 20000 with largest number of proper divisors
|
||||
'
|
||||
result%=1 ! largest so far
|
||||
number%=0 ! its number of divisors
|
||||
FOR i%=1 TO 20000
|
||||
num%=@proper_divisors(i%)
|
||||
IF num%>number%
|
||||
result%=i%
|
||||
number%=num%
|
||||
ENDIF
|
||||
NEXT i%
|
||||
PRINT "Largest number of divisors is ";number%;" for ";result%
|
||||
'
|
||||
~INP(2)
|
||||
CLOSEW 1
|
||||
'
|
||||
' find the proper divisors of n%, placing results in f%
|
||||
' and return the number found
|
||||
'
|
||||
FUNCTION proper_divisors(n%)
|
||||
LOCAL i%,root%,count%
|
||||
'
|
||||
ARRAYFILL f%(),0
|
||||
count%=1 ! index of next slot in f% to fill
|
||||
'
|
||||
IF n%>1
|
||||
f%(count%)=1
|
||||
count%=count%+1
|
||||
root%=SQR(n%)
|
||||
FOR i%=2 TO root%
|
||||
IF n% MOD i%=0
|
||||
f%(count%)=i%
|
||||
count%=count%+1
|
||||
IF i%*i%<>n% ! root% is an integer, so check if i% is actual squa- lists:seq(1,10)].
|
||||
X: 1, N: []
|
||||
X: 2, N: [1]
|
||||
X: 3, N: [1]
|
||||
X: 4, N: [1,2]
|
||||
X: 5, N: [1]
|
||||
X: 6, N: [1,2,3]
|
||||
X: 7, N: [1]
|
||||
X: 8, N: [1,2,4]
|
||||
X: 9, N: [1,3]
|
||||
X: 10, N: [1,2,5]
|
||||
[ok,ok,ok,ok,ok,ok,ok,ok,ok,ok]
|
||||
|
||||
2> properdivs:longest(20000).
|
||||
With 79, Number 15120 has the most divisors
|
||||
re root of n%
|
||||
f%(count%)=n%/i%
|
||||
count%=count%+1
|
||||
ENDIF
|
||||
ENDIF
|
||||
NEXT i%
|
||||
ENDIF
|
||||
'
|
||||
RETURN count%-1
|
||||
ENDFUNC
|
||||
Loading…
Add table
Add a link
Reference in a new issue