소수 3797에는 왼쪽부터 자리수를 하나씩 없애거나 (3797, 797, 97, 7) 오른쪽부터 없애도 (3797, 379, 37, 3) 모두 소수가 되는 성질이 있습니다.
이런 성질을 가진 소수는 단 11개만이 존재합니다. 이것을 모두 찾아서 합을 구하세요.
(참고: 2, 3, 5, 7은 제외합니다)
그냥 하자.
안느리다.
1
2
3
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
|
#!/usr/bin/env perl use 5.010; use strict; use warnings; use Math::Prime::Util ':all'; my $c = 11; my $r = 0; my @a; my $p = 7; while (1) { $p = next_prime($p); my @a = my @b = split (//, $p); my $b = 1; for (0..length($p)-2) { shift(@a); pop(@b); if (!is_prime(join("", @a)) or !is_prime(join("", @b))) { $b = 0; } } if ($b) { $r += $p; last if (--$c == 0); } } say $r; |