scale=90 for (e = n = f = 1; fย != 0; f /= ++n) e += f e
Posts
Palindromic primes
20 FOR N=2 TO 100000 30 I=N 35 J=0 40 J=J*10+I-INT(I/10)*10 43 I=INT(I/10) 47 IF I>0 THEN 40 50 IF J<>N THEN 80 52 IF N=2 THEN 75 60 FOR I=2 TO SQR(N) 65 IF N-INT(N/I)*I=0 THEN 80 70 NEXT I 75 PRINT N;" "; 80 NEXT N 85 PRINT
Shuffle and deal four hands of five cards each with #Python
#!/usr/bin/python3
import random
deck = [
'๐ก','๐ข','๐ฃ','๐ค','๐ฅ','๐ฆ','๐ง','๐จ','๐ฉ','๐ช','๐ซ','๐ญ','๐ฎ',
'๐ฑ','๐ฒ','๐ณ','๐ด','๐ต','๐ถ','๐ท','๐ธ','๐น','๐บ','๐ป','๐ฝ','๐พ',
'๐','๐','๐','๐','๐
','๐','๐','๐','๐','๐','๐','๐','๐',
'๐','๐','๐','๐','๐','๐','๐','๐','๐','๐','๐','๐','๐'
]
random.shuffle(deck)
for i in range(0, 20, 5):
print(" ".join(deck[i:i+5]))
Highlight consecutive duplicated words with Perl
perl -pe 's/\b(\w+)\s+\1\b/\e[31m$&\e[0m/gi' gettysburg.txt
Factorial primes with gawk
#! /usr/bin/gawk -f
function isprime(n, i) {
if(n==2)return 1
if(n<2||n%2==0)return 0
for(i=3;i*i<=n;i+=2)
if(n%i==0)return 0
return 1
}
BEGIN {
for(x=i=1;z<10;i++){
x*=i
if(isprime(x-1)){z++;print i"! - 1 = "x-1}
if(isprime(x+1)){z++;print i"! + 1 = "x+1}
}
}
The next output would be (if you had the patience to do it):
27! + 1 = 10,888,869,450,418,352,160,768,000,001
#! /usr/bin/bc -l
define t(x) {
return s(x) / c(x)
}
define y(y) {
if (y == -1) return -2 * a(1) /* -pi/2 */
if (y == 1) return 2 * a(1) /* pi/2 */
return a(y / sqrt(1 - y * y))
}
define x(x) {
auto a
if (x == 0) return 2 * a(1) /* pi/2 */
a = a(sqrt(1 - x * x) / x)
if (a < 0) {
return a + 4 * a(1) /* add pi */
} else {
return a
}
}
p = 4 * a(1) /* pi */
d = p / 180 /* one degree in radians */
"Using radians:
"
"sin(-pi / 6) = "; s(-p / 6)
"cos(3 * pi / 4) = "; c(3 * p / 4)
"tan(pi / 3) = "; t(p / 3)
"asin(-1 / 2) = "; y(-1 / 2)
"acos(-sqrt(2) / 2) = "; x(-sqrt(2) / 2)
"atan(sqrt(3)) = "; a(sqrt(3))
"Using degrees:
"
"sin(-30) = "; s(-30 * d)
"cos(135) = "; c(135 * d)
"tan(60) = "; t(60 * d)
"asin(-1 / 2) = "; y(-1 / 2) / d
"acos(-sqrt(2) / 2) = "; x(-sqrt(2) / 2) / d
"atan(sqrt(3)) = "; a(sqrt(3)) / d
quit
With Python find words longer than 10 characters that use all the vowels:
#! /usr/bin/env python3
with open('unixdict.txt') as f:
while (lineย := f.readline().strip()):
if (len(line) > 10 and all(
line.count(c) == 1 for c in 'aeiou')):
print(line)
Number to words
#!/usr/bin/env python3
import sys
n = int(sys.argv[1])
ones = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
teens = ["ten", "eleven", "twelve", "thirteen", "fourteen","fifteen", "sixteen", "seventeen", "eighteen", "nineteen"]
tens = ["", "", "twenty", "thirty", "forty","fifty", "sixty", "seventy", "eighty", "ninety"]
if n < 10:
print(ones[n])
elif n < 20:
print(teens[n - 10])
else:
t = n // 10
o = nย % 10
if o == 0:
print(tens[t])
else:
print(f"{tens[t]}-{ones[o]}")
Archimedes spiral with turtle graphics
#!/usr/bin/env python3
from turtle import *
from math import *
color("blue")
speed(0)
down()
for i in range(200):
t = i*pi/20
r = 1+5*t
goto(r*cos(t), r*sin(t))
done()