読者です 読者をやめる 読者になる 読者になる

初代Masteries

きっとモヒカンにもなれないお前たちに告げる!!!

Project Euler - Problem 9

Problem 9

a + b + c = 1000 かつ a^2 + b^2 = c^2 を満たすa, b, cを求めてから, それらの積 abc を求める問題.

use strict;
use warnings;

for my $a (1..1000) {
    for my $b (1..(1000 - $a)) {
        my $c = 1000 - $a - $b;

        if($a ** 2 + $b ** 2 ==  $c ** 2) {
            print "$a * $b * $c = " . ($a * $b * $c) . "\n";
            exit;
        }
    }
}

こんな感じ.
最初は三重のforループを書いていたけど, a + b + c = 1000 ならば, aとbが決まった時点でcが一意に決まるので, 二重にしてみました.