June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -0,0 +1,40 @@
# Project : Casting out nines
# Date : 2018/03/24
# Author : Gal Zsolt [~ CalmoSoft ~]
# Email : <calmosoft@gmail.com>
co9(1, 10, 99, [1,9,45,55,99])
co9(1, 10, 1000, [1,9,45,55,99,297,703,999])
func co9(start,base,lim,kaprekars)
c1=0
c2=0
s = []
for k = start to lim
c1 = c1 + 1
if k % (base-1) = (k*k) % (base-1)
c2 = c2 + 1
add(s,k)
ok
next
msg = "Valid subset" + nl
for i = 1 to len(kaprekars)
if not find(s,kaprekars[i])
msg = "***Invalid***" + nl
exit
ok
next
showarray(s)
see "Kaprekar numbers:" + nl
showarray(kaprekars)
see msg
see "Trying " + c2 + " numbers instead of " + c1 + " saves " + (100-(c2/c1)*100) + "%" + nl + nl
func showarray(vect)
see "{"
svect = ""
for n = 1 to len(vect)
svect = svect + vect[n] + ", "
next
svect = left(svect, len(svect) - 2)
see svect + "}" + nl

View file

@ -0,0 +1,23 @@
func cast_out(base = 10, min = 1, max = (base**2 - 1)) {
var b9 = base-1
var ran = b9.range.grep {|n| n%b9 == (n*n % b9) }
var x = min//b9
var r = []
loop {
ran.each {|n|
var k = (b9*x + n)
return r if (k > max)
r << k if (k >= min)
}
++x
}
return r
}
say cast_out().join(' ')
say cast_out(16).join(' ')
say cast_out(17).join(' ')