대칭수(palindrome)인 585는 2진수로 나타내도 10010010012가 되어 여전히 대칭수입니다.
10진법과 2진법으로 모두 대칭수인 1,000,000 이하 숫자의 합을 구하세요.
(주의: 첫번째 자리가 0이면 대칭수가 아님)
sprintf를 이용해 2진수로 변환한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#!/usr/bin/env perl use 5.010; use strict; use warnings; my $r = 0; for (1..1000000) { if ($_ == reverse $_) { my $b = sprintf ("%b", $_); $r += $_ if ($b == reverse $b); } } say $r; |