#!/usr/bin/perl use strict; my $input = ; chomp($input); my @ranges = split(/,/,$input); my $sum = 0; my $sum2 = 0; foreach my $range (@ranges) { my($first,$last)=split(/-/, $range); for(my $i=$first; $i<=$last; $i++) { my $l = length "$i"; if($l % 2 == 0) { if(substr($i, 0, $l/2) eq substr($i, $l/2, $l/2)) { print "Invalid: $i\n"; $sum += $i; $sum2 += $i; next; } } for(my $len = 1; $len <= (length "$i")/2; $len++) { my $str = substr($i, 0, $len); my $working = $str . $str; while(length $working < length $i) { $working .= $str; } if($working == $i) { print "Invalid2: $i\n"; $sum2 += $i; } } } } print "Sum is $sum\n"; print "Sum2 is $sum2\n"; __DATA__ 10327-17387,74025-113072,79725385-79874177,964628-1052240,148-297,3-16,126979-227778,1601-2998,784-1207,831289-917268,55603410-55624466,317-692,602197-750430,17-32,38-58,362012-455626,3622441-3647505,883848601-883920224,62-105,766880-804855,9184965756-9185005415,490073-570277,2929273115-2929318135,23251-48475,9696863768-9697013088,229453-357173,29283366-29304416,4526-8370,3095-4389,4400617-4493438 11-22,95-115,998-1012,1188511880-1188511890,222220-222224,1698522-1698528,446443-446449,38593856-38593862,565653-565659,824824821-824824827,2121212118-2121212124