Hi!
Mit dem Script
habe ich versucht das Problem 27 http://projecteuler.net/index.php?section=problems&id=27 zu lösen was mir bisher noch nicht gelungen ist; mit "$n ** 2 - $a * $n + $b" komme ich auf n² - 79n + 1601 und mit "$n ** 2 + $a * $n + $b" auf n² + n + 41. Habe ich einen Fehler im Script, sind die "foreach-Schleifen" zu kurz oder habe ich die Frage nicht richtig verstanden.
Mit dem Script
Code:
#! /usr/bin/perl -w
use strict;
my %hash = ();
LAB_0: foreach my $b ( 1..9999 ) {
LAB_1: foreach my $a ( 0..999 ) {
my $count = -1;
foreach my $n ( 0..999 ) {
my $plus = $n ** 2 - $a * $n + $b;
next LAB_0 if $plus < 1;
$count++;
next LAB_1 if is_prime_number( $plus ) == 0;
$hash{$count} = [ $a, $b ];
}
}
}
my $key = 0;
foreach my $k ( sort( { $a <=> $b } keys %hash ) ) {
$key = $k;
}
print "0 - ", $key, " |a| = ", ${$hash{$key}}[0], " |b| = ", ${$hash{$key}}[1], "\n";
sub is_prime_number {
return 0 if ( int( $_[0] ) != $_[0]);
foreach my $divider ( 2..sqrt( $_[0] ) ) {
my $quotient = $_[0] % $divider;
return 0 if ( $quotient == 0 );
}
return 1;
}
habe ich versucht das Problem 27 http://projecteuler.net/index.php?section=problems&id=27 zu lösen was mir bisher noch nicht gelungen ist; mit "$n ** 2 - $a * $n + $b" komme ich auf n² - 79n + 1601 und mit "$n ** 2 + $a * $n + $b" auf n² + n + 41. Habe ich einen Fehler im Script, sind die "foreach-Schleifen" zu kurz oder habe ich die Frage nicht richtig verstanden.