Posts
Imagemagick
Posted in Uncategorized
Leave a comment
Magic
Generate magic squares for any odd side length:
#!/usr/bin/env python3
import sys
def magic_constant(n):
return n * (n * n + 1) // 2
def magic_square(n):
square = [[0] * n for _ in range(n)]
num = 1
i, j = 0, n // 2
while num <= n * n:
square[i][j] = num
num += 1
new_i = (i - 1) % n
new_j = (j + 1) % n
if square[new_i][new_j]:
i = (i + 1) % n
else:
i, j = new_i, new_j
return square
n = int(sys.argv[1]) if len(sys.argv) > 1 else 3
square = magic_square(n)
width = len(str(n * n))
print(f"Magic constant for n={n}: {magic_constant(n)}\n")
for row in square:
print(" ".join(f"{x:>{width}}" for x in row))
Posted in Uncategorized
Leave a comment
Lastfri
Print a list of last Fridays every month for the given year
#!/usr/bin/python3
import sys
from calendar import monthrange
from datetime import date, timedelta
def last_fridays(year):
for month in range(1, 13):
last_day = date(year, month, monthrange(year, month)[1])
yield last_day - timedelta(days=(last_day.weekday() - 4) % 7)
for friday in last_fridays(int(sys.argv[1])):
print(friday.isoformat())
Posted in Uncategorized
Leave a comment
Antiprime
Print a list of antiprimes (highly composite numbers) with bc
#! /usr/bin/bc
define factors(n) {
auto c, i
for(i=1;i<=n;i++) {
if(n%i==0) c+=1
}
return c
}
max = 0
n = 1
for(c=19; c > 0;) {
f = factors(n)
if(f > max) {
print n," "
max = f
c -= 1
}
n += 1
}
print "\n"
quit
Posted in Uncategorized
Leave a comment
Awk Comb
Combinations of r elements chosen from a pool of n elements
BEGIN {
for (i=1; i <= r; i++) {
A[i] = i
if (i < r ) printf i OFS
else print i}
while (A[1] < n - r + 1) {
for (i = r; i >= 1; i--) {
if (A[i] < n - r + i) {
A[i]++
p = i
break}}
for (i = p + 1; i <= r; i++) A[i] = A[i - 1] + 1
for (i=1; i <= r; i++) {
if (i < r) printf A[i] OFS
else print A[i]}}
exit}
Posted in Uncategorized
Leave a comment
Hex
Hex
#!/usr/bin/python3
import sys
with open(sys.argv[1], "rb") as f:
data = f.read()
for offset in range(0, len(data), 16):
b = data[offset:offset + 16]
left = " ".join(f"{x:02x}" for x in b[:8])
right = " ".join(f"{x:02x}" for x in b[8:])
hexpart = f"{left:<23} {right:<23}"
text = "".join(chr(x) if 32 <= x <= 126 else "." for x in b)
print(f"{offset:08x} {hexpart} |{text}|")
Posted in Uncategorized
Leave a comment
Euler
Posted in Uncategorized
Leave a comment
Palprimes
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
Posted in Uncategorized
Leave a comment









