Code:
function skidpatchchart(),
gears = [30:66];
cogs = 4:30;
fprintf(' cogs');
for k = 1:length(cogs);
fprintf('%4d',cogs(k));
end
fprintf('\ngears\n');
for j = 1:length(gears),
fprintf('%4d ',gears(j));
for k = 1:length(cogs),
fprintf('%4d',skidpatch(gears(j),cogs(k)));
end
fprintf('\n');
end
function sp = skidpatch(g,c),
% this is totally non optimal code, but i had fun writing it
primes = setdiff(1:100,unique(repmat(2:50,49,1).*repmat([2:50]',1,49)));
primes = primes(2:end);
sp = c;
while (g>primes(1)),
if g/primes(1) == floor(g/primes(1)) & sp/primes(1) == floor(sp/primes(1)),
sp = sp/primes(1);
g = g/primes(1);
else
primes = primes(2:end);
end
end
cogs 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
gears
30 2 1 1 7 4 3 1 11 2 13 7 1 8 17 3 19 2 7 11 23 4 5 13 9 14 29 5
31 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
32 1 5 3 7 1 9 5 11 3 13 7 15 1 17 9 19 5 21 11 23 3 25 13 27 7 29 15
33 4 5 2 7 8 3 10 1 4 13 14 5 16 17 6 19 20 7 2 23 8 25 26 9 28 29 10
34 2 5 3 7 4 9 5 11 6 13 7 15 8 1 9 19 10 21 11 23 12 25 13 27 14 29 15
35 4 1 6 1 8 9 2 11 12 13 2 3 16 17 18 19 4 3 22 23 24 5 26 27 4 29 6
36 1 5 1 7 2 1 5 11 1 13 7 5 4 17 1 19 5 7 11 23 2 25 13 3 7 29 5
37 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
38 2 5 3 7 4 9 5 11 6 13 7 15 8 17 9 1 10 21 11 23 12 25 13 27 14 29 15
39 4 5 2 7 8 3 10 11 4 1 14 5 16 17 6 19 20 7 22 23 8 25 2 9 28 29 10
40 1 1 3 7 1 9 1 11 3 13 7 3 2 17 9 19 1 21 11 23 3 5 13 27 7 29 3
41 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
42 2 5 1 1 4 3 5 11 2 13 1 5 8 17 3 19 10 1 11 23 4 25 13 9 2 29 5
43 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
44 1 5 3 7 2 9 5 1 3 13 7 15 4 17 9 19 5 21 1 23 6 25 13 27 7 29 15
45 4 1 2 7 8 1 2 11 4 13 14 1 16 17 2 19 4 7 22 23 8 5 26 3 28 29 2
46 2 5 3 7 4 9 5 11 6 13 7 15 8 17 9 19 10 21 11 1 12 25 13 27 14 29 15
47 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
48 1 5 1 7 1 3 5 11 1 13 7 5 1 17 3 19 5 7 11 23 1 25 13 9 7 29 5
49 4 5 6 1 8 9 10 11 12 13 2 15 16 17 18 19 20 3 22 23 24 25 26 27 4 29 30
50 2 1 3 7 4 9 1 11 6 13 7 3 8 17 9 19 2 21 11 23 12 1 13 27 14 29 3
51 4 5 2 7 8 3 10 11 4 13 14 5 16 1 6 19 20 7 22 23 8 25 26 9 28 29 10
52 1 5 3 7 2 9 5 11 3 1 7 15 4 17 9 19 5 21 11 23 6 25 1 27 7 29 15
53 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
54 2 5 1 7 4 1 5 11 2 13 7 5 8 17 1 19 10 7 11 23 4 25 13 1 14 29 5
55 4 1 6 7 8 9 2 1 12 13 14 3 16 17 18 19 4 21 2 23 24 5 26 27 28 29 6
56 1 5 3 1 1 9 5 11 3 13 1 15 2 17 9 19 5 3 11 23 3 25 13 27 1 29 15
57 4 5 2 7 8 3 10 11 4 13 14 5 16 17 6 1 20 7 22 23 8 25 26 9 28 29 10
58 2 5 3 7 4 9 5 11 6 13 7 15 8 17 9 19 10 21 11 23 12 25 13 27 14 1 15
59 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
60 1 1 1 7 2 3 1 11 1 13 7 1 4 17 3 19 1 7 11 23 2 5 13 9 7 29 1
61 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
62 2 5 3 7 4 9 5 11 6 13 7 15 8 17 9 19 10 21 11 23 12 25 13 27 14 29 15
63 4 5 2 1 8 1 10 11 4 13 2 5 16 17 2 19 20 1 22 23 8 25 26 3 4 29 10
64 1 5 3 7 1 9 5 11 3 13 7 15 1 17 9 19 5 21 11 23 3 25 13 27 7 29 15
65 4 1 6 7 8 9 2 11 12 1 14 3 16 17 18 19 4 21 22 23 24 5 2 27 28 29 6
66 2 5 1 7 4 3 5 1 2 13 7 5 8 17 3 19 10 7 1 23 4 25 13 9 14 29 5