Demo ideas



Demo 0:
// Fast Factorial
ops.on;
factorials={};
//factorials[0]=1;
factorials[1]=1;
((2..1500)<>n).map(
	function (n,i)
 	{
		//console.log(n,i,n-1,factorials[(n-1)]);
		factorials[n]=factorials[(n-1)]*n;
		//return(i*factorials[(n-1)*1])
	}
);
CL(factorials);

// Fast Factorial
ops.on;
factorials={};
factorials[0]=1;
factorials[1]=1;
((1..1500)<>n).map(
	function (n,i)
 	{
		//console.log(n,i,n-1,factorials[(n-1)]);
		factorials[n]=factorials[(n-1)]*n;
		//return(i*factorials[(n-1)*1])
	}
);
(Object.keys(factorials).map(f=>[f,factorials[f].toString().length,factorials[f]]));



Demo 1:
// this works
// https://twitter.com/fermatslibrary/status/1360952038155247617
ops.on;
factorials={};
//factorials[0]=1;
factorials[1]=1;
((2..160)<>n).map(
	function (n,i)
 	{
		//console.log(n,i,n-1,factorials[(n-1)]);
		factorials[n]=factorials[(n-1)]*n;
		//return(i*factorials[(n-1)*1])
	}
);
CL(factorials);
els=Object.keys(factorials)
			.map(
			(f,i)=>(((i%2)==0)?-1:1)*factorials[f]
			)

s=SUM(els);
CL(els~);

[els~,s,ISPRIME(s)];

Demo 1.1:
// https://twitter.com/fermatslibrary/status/1262377062511325191?s=20
ops.on;
factorials={};
//factorials[0]=1;
factorials[1]=1;
((2..15)<>n).map(
	function (n,i)
 	{
		//console.log(n,i,n-1,factorials[(n-1)]);
		factorials[n]=factorials[(n-1)]*n;
		//return(i*factorials[(n-1)*1])
	}
);
CL(factorials);
els=Object.keys(factorials)
			.map(
			(f,i)=>(((i%2)==0)?1:-1)*factorials[f]
			)

s=SUM(els);
CL(els~);

[els~,s,ISPRIME(s)];

Demo 2:
// https://twitter.com/fermatslibrary/status/1330868714783305728?s=20
e1=EXP(1d1000);
e2=(e1.toString()).slice(3,649+3);
ISPRIME(e2<>n)
is a prime 
71342 msec

// number is 
1828182845904523536028747135266249775724709369995957496696762772407663035354759457138217852516642742746639193200305992181741359662904357290033429526059563073813232862794349076323382988075319525101901157383418793070215408914993488416750924476146066808226480016847741185374234544243710753907774499206955170276183860626133138458300075204493382656029760673711320070932870912744374704723069697720931014169283681902551510865746377211125238978442505695369677078544996996794686445490598793163688923009879312773617821542499922957635148220826989519366803318252886939849646510582093923982948879332036250944311730123819706841614039701983767932068328237646480429

"A good notation has a subtlety and suggestiveness which, at times, make it almost seem like a live teacher" - Bertrand Russell (1872–1970)

Demo 3:
//https://twitter.com/fermatslibrary/status/1318907678492590084?s=20
ops.on;
r=(10n^6400)-(10n^6352)-1;
ISPRIME(r);


Demo 4:
//https://twitter.com/fermatslibrary/status/1304767287170301958?s=20
SPELLINTEGER(1..1000)
// 1..999 has no words with a in it 
SPELLINTEGER(1..1000)
	.filter(x=>x.match(/a/gi))

// for all letters
recs=SPELLINTEGER(1..1000);

(#a-z)
	.map(
		l=>[l,recs
			.filter(x=>x.match(new RegExp(l,"gi")))
			.first()]
)



Demo 5
//https://twitter.com/fermatslibrary/status/1298595618965921793?s=20
// no century starts with tuesday, thursday, or sunday
DATE(0..10000..100,1,1).$(d=>DAYS[WEEKDAY(d)-1])


Demo 6
//https://twitter.com/fermatslibrary/status/1279049771433570306?s=20
SIN(1234567890deg)=1
because 360*3429355+90


Demo 7
Rubiks Cube Combinations
ops.on;
(8n)!*3^7*12!/2*2^11


Demo 8
// Fast Factorial - Invert 
// https://twitter.com/fermatslibrary/status/1260558672264118273?s=20
ops.on;
factorials={};
factorials[0]=1;
factorials[1]=1;
list=((1..150)<>n);
list.$(l=>1d1000/l)~

Demo 9
//The first 43 digits of 43! form a prime number
//https://twitter.com/fermatslibrary/status/1251503329898909698?s=20
(43n)!
ISPRIME(6041526306337383563735513206851399750726451n)


Demo 10:
((1..1000)<>n)!



More


1. to make video on: https://twitter.com/fermatslibrary/status/1330868714783305728
a=EXP(1<>d700);
b=(a+"").substr(3,649);
ISPRIME(b<>n)

2. https://twitter.com/fermatslibrary/status/1337026849503842304
pi as ratio of odd and evens (need to fix evens)
xp:=(n*n)/(n-1)/(n+1);
1..1000..100@(n=>PRODUCT(ODDS(n,2).$(xp))*2)	

3. xp:=(n*n)/(n-1)/(n+1);
1..100000..10000@(n=>PRODUCT(ODDS(n,2).$(xp))*2)
// issue as in tofix 1

4.https://twitter.com/fermatslibrary/status/1337402267360759814
0..50@(n=>(("0.1"+REPEATCHAR("1",n))<>d100)^2)

5. beautiful notations
series of numbers
etc.

6. approximation for pi in terms of pi
https://twitter.com/fermatslibrary/status/1316722950809288704
p=(1+1/PI());
p^(1+PI())


7. Fermat's Library @fermatslibrary
·Oct 11
120 is the maximum number of sides a semi-regular dice (all sides the same shape and same area) can have.
https://twitter.com/fermatslibrary/status/1315270939714760706

8. 567^2=
has all digits 

9. https://twitter.com/fermatslibrary/status/1314190571242692608
(9..1..-1).join("")/(1..9).join("")

10. fermats library 
https://twitter.com/fermatslibrary/status/1364580859202965512?s=20
ISPRIME((1..82 .reverse() .join(""))<>n)
-loop through many
1..1000.$(n=>[n,ISPRIME((1..(n).reverse() .join(""))<>n)])
(only 82 matched)

11. Random matrices etc.	
MDETERM(|34|.$(RANDOM))

12. Calculate 100000! and then find appearence of each digit in the result (
a=(100000n)!;
b=a.toString();
0..9.$(n=>b.match(new RegExp(n,"g")).length)

68620	43238	43275	43003	42990	42935	43184	43470	
42777	43082
0 being most frequent
add upto the length of the string 456574


b=a.toString();
c=b.match(/0+$/);
c[0].length
// not \0 but use 0 for regexp


13. Fibonnaci long numbers
FIBONNACI(500n)~