Skip to content

Instantly share code, notes, and snippets.

@bertomartin
Created April 13, 2014 04:40
Show Gist options
  • Save bertomartin/10569476 to your computer and use it in GitHub Desktop.
Save bertomartin/10569476 to your computer and use it in GitHub Desktop.
class Fixnum
def prime?
bound = Math.sqrt(self).floor
bound < 2 || (2..bound).all? { |i| self % i > 0 }
end
def palindrome?
str = self.to_s
len = str.length
last = len - 1
(0..(len/2-1)).all? { |i| str[i] == str[last-i] }
end
def awesome?(leet = true)
return false if leet && (!self.palindrome? || self.prime?)
n = self
factors = []
while !n.prime?
bound = Math.sqrt(n).floor
x = (2..bound).find { |i| n % i == 0 }
return false if !x.palindrome?
factors << x
n = n / x
end
if n.palindrome?
factors << n
factors
else
false
end
end
end
(2..1_000_000).each do |n|
#$stderr.puts(n)
result = n.awesome?
puts "% 7d => %s" % [n, result.inspect] if result
end
4 => [2, 2]
6 => [2, 3]
8 => [2, 2, 2]
9 => [3, 3]
22 => [2, 11]
33 => [3, 11]
44 => [2, 2, 11]
55 => [5, 11]
66 => [2, 3, 11]
77 => [7, 11]
88 => [2, 2, 2, 11]
99 => [3, 3, 11]
121 => [11, 11]
202 => [2, 101]
242 => [2, 11, 11]
252 => [2, 2, 3, 3, 7]
262 => [2, 131]
303 => [3, 101]
343 => [7, 7, 7]
363 => [3, 11, 11]
393 => [3, 131]
404 => [2, 2, 101]
484 => [2, 2, 11, 11]
505 => [5, 101]
525 => [3, 5, 5, 7]
606 => [2, 3, 101]
616 => [2, 2, 2, 7, 11]
626 => [2, 313]
686 => [2, 7, 7, 7]
707 => [7, 101]
808 => [2, 2, 2, 101]
909 => [3, 3, 101]
939 => [3, 313]
1111 => [11, 101]
1331 => [11, 11, 11]
1441 => [11, 131]
1661 => [11, 151]
1991 => [11, 181]
2112 => [2, 2, 2, 2, 2, 2, 3, 11]
2222 => [2, 11, 101]
2662 => [2, 11, 11, 11]
2772 => [2, 2, 3, 3, 7, 11]
2882 => [2, 11, 131]
3333 => [3, 11, 101]
3443 => [11, 313]
3773 => [7, 7, 7, 11]
3883 => [11, 353]
3993 => [3, 11, 11, 11]
4224 => [2, 2, 2, 2, 2, 2, 2, 3, 11]
4444 => [2, 2, 11, 101]
5445 => [3, 3, 5, 11, 11]
5555 => [5, 11, 101]
5775 => [3, 5, 5, 7, 11]
6336 => [2, 2, 2, 2, 2, 2, 3, 3, 11]
6666 => [2, 3, 11, 101]
6776 => [2, 2, 2, 7, 11, 11]
6886 => [2, 11, 313]
7777 => [7, 11, 101]
7997 => [11, 727]
8448 => [2, 2, 2, 2, 2, 2, 2, 2, 3, 11]
8888 => [2, 2, 2, 11, 101]
9999 => [3, 3, 11, 101]
10201 => [101, 101]
12221 => [11, 11, 101]
13231 => [101, 131]
14641 => [11, 11, 11, 11]
15251 => [101, 151]
15851 => [11, 11, 131]
18281 => [101, 181]
19291 => [101, 191]
20402 => [2, 101, 101]
20602 => [2, 10301]
22622 => [2, 11311]
22822 => [2, 11411]
23232 => [2, 2, 2, 2, 2, 2, 3, 11, 11]
24442 => [2, 11, 11, 101]
24842 => [2, 12421]
25152 => [2, 2, 2, 2, 2, 2, 3, 131]
25452 => [2, 2, 3, 3, 7, 101]
26462 => [2, 101, 131]
26662 => [2, 13331]
28682 => [2, 14341]
30603 => [3, 101, 101]
30903 => [3, 10301]
31613 => [101, 313]
33933 => [3, 11311]
34643 => [7, 7, 7, 101]
35653 => [101, 353]
36663 => [3, 11, 11, 101]
37673 => [101, 373]
37873 => [11, 11, 313]
38683 => [101, 383]
39693 => [3, 101, 131]
39993 => [3, 13331]
40804 => [2, 2, 101, 101]
46464 => [2, 2, 2, 2, 2, 2, 2, 3, 11, 11]
48384 => [2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 7]
48884 => [2, 2, 11, 11, 101]
52525 => [5, 5, 11, 191]
59895 => [3, 3, 5, 11, 11, 11]
60206 => [2, 30103]
60406 => [2, 30203]
60806 => [2, 30403]
62026 => [2, 31013]
64646 => [2, 32323]
64846 => [2, 32423]
65856 => [2, 2, 2, 2, 2, 2, 3, 7, 7, 7]
67776 => [2, 2, 2, 2, 2, 2, 3, 353]
69696 => [2, 2, 2, 2, 2, 2, 3, 3, 11, 11]
82728 => [2, 2, 2, 3, 3, 3, 383]
88788 => [2, 2, 3, 7, 7, 151]
90309 => [3, 30103]
90609 => [3, 30203]
93039 => [3, 31013]
96969 => [3, 32323]
112211 => [11, 101, 101]
113311 => [11, 10301]
115511 => [11, 10501]
116611 => [11, 10601]
124421 => [11, 11311]
125521 => [11, 11411]
134431 => [11, 11, 11, 101]
136631 => [11, 12421]
139931 => [11, 12721]
145541 => [11, 101, 131]
146641 => [11, 13331]
157751 => [11, 14341]
167761 => [11, 101, 151]
169961 => [11, 15451]
176671 => [11, 16061]
179971 => [11, 16361]
199991 => [11, 18181]
213312 => [2, 2, 2, 2, 2, 2, 3, 11, 101]
224422 => [2, 11, 101, 101]
226622 => [2, 11, 10301]
248842 => [2, 11, 11311]
255552 => [2, 2, 2, 2, 2, 2, 3, 11, 11, 11]
268862 => [2, 11, 11, 11, 101]
276672 => [2, 2, 2, 2, 2, 2, 3, 11, 131]
279972 => [2, 2, 3, 3, 7, 11, 101]
331133 => [11, 30103]
332233 => [11, 30203]
334433 => [11, 30403]
336633 => [3, 11, 101, 101]
337733 => [11, 30703]
338833 => [11, 30803]
339933 => [3, 11, 10301]
341143 => [11, 31013]
346643 => [11, 31513]
347743 => [11, 101, 313]
355553 => [11, 32323]
356653 => [11, 32423]
368863 => [11, 33533]
379973 => [11, 34543]
385583 => [11, 35053]
386683 => [11, 35153]
388883 => [11, 35353]
398893 => [11, 36263]
405504 => [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 11]
426624 => [2, 2, 2, 2, 2, 2, 2, 3, 11, 101]
448844 => [2, 2, 11, 101, 101]
526625 => [5, 5, 5, 11, 383]
549945 => [3, 3, 5, 11, 11, 101]
577775 => [5, 5, 11, 11, 191]
639936 => [2, 2, 2, 2, 2, 2, 3, 3, 11, 101]
657756 => [2, 2, 3, 3, 11, 11, 151]
662266 => [2, 11, 30103]
664466 => [2, 11, 30203]
668866 => [2, 11, 30403]
682286 => [2, 11, 31013]
772277 => [11, 70207]
775577 => [11, 70507]
776677 => [11, 70607]
784487 => [11, 71317]
794497 => [11, 72227]
799997 => [11, 72727]
993399 => [3, 11, 30103]
996699 => [3, 11, 30203]
997799 => [11, 90709]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment