-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathProb41.pl
More file actions
50 lines (50 loc) · 809 Bytes
/
Prob41.pl
File metadata and controls
50 lines (50 loc) · 809 Bytes
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#! usr/bin/perl
#Matthew Digman
use strict;
use warnings;
sub sieve{
my @nums=(2..10000);
my @primes;
while(@nums){
my $prime=shift @nums;
if(defined $prime){
push @primes, $prime;
for(my $itr=$prime-1; $itr<@nums;$itr+=$prime){
if(defined $nums[$itr]){
$nums[$itr]=undef;
}
}
}
}
@primes;
}
my @small_primes=sieve;
sub is_prime{
my $test=shift;
unless($test%2){
return 0;
}
for(@small_primes){
if($_**2>$test){
return 1;
}
unless($test%$_){
return 0;
}
}
1;
}
sub is_pandigital{
my $num=shift;
for(1..length $num){
return 0 unless($num=~/$_/);
}
print "$num is pandigital\n";
return 1;
}
for(my $itr=7654321;$itr>=1; $itr--){
if(is_pandigital($itr)&&is_prime($itr)){
print "$itr\n";
exit;
}
}