1487, 4817, 8147은 3330씩 늘어나는 등차수열입니다. 이 수열에는 특이한 점이 두 가지 있습니다.
- 세 수는 모두 소수입니다.
- 세 수는 각각 다른 수의 자릿수를 바꿔서 만들 수 있는 순열(permutation)입니다.
1자리, 2자리, 3자리의 소수 중에서는 위와 같은 성질을 갖는 수열이 존재하지 않습니다. 하지만 4자리라면 위엣것 말고도 또 다른 수열이 존재합니다.
그 수열의 세 항을 이었을 때 만들어지는 12자리 숫자는 무엇입니까?
등차수열인 세 소수를 구해 순열인지 확인했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#!/usr/bin/env perl use 5.010; use strict; use warnings; use Math::Prime::Util ':all'; my @p = @{primes(1000, 9999)}; for my $i (@{primes(1000, 9999)}) { for my $j (@{primes($i+1, ($i+9999)/2)}) { my $k = $j*2-$i; if (is_prime($k) and f($i) eq f($j) and f($j) eq f($k)) { next if ($i.$j.$k == "148748178147"); //문제에서 주어진 값 say $i.$j.$k; } } } sub f { return join("", sort split (//, shift)); } |