2008-04-05から1日間の記事一覧

Problem10

なんとか10問目。8問目で作った素数判定関数をそのまま利用。 11秒ぐらいかかりましたね。当っているのかな? #!/usr/bin/perl use strict; use warnings; my @primes; print "sum of prime number below 2 million is ", p10(2000000), "\n"; # answer is 1…

Problem9

9問目。三平方の定理を満たす a, b, cの合計が 1000になる唯一組み合わせを 見つけろという問題。wikipediaによると一応定理はあるみたいですね。要検討。 a,b,cの順番で数字が大きくないといけないので、aは333未満, bは500未満ぐらいに なるんですかね。 #…

Problem8

すごく長い数字の列において連続する 5つの数の積が最も大きくなるものを求めろ。 素直に 5個抽出して 1つずつ積を求めるという具合で。0を含んだら無視するとかに すると多少早くなるんですかね。 #!/usr/bin/perl use strict; use warnings; my $str = "73…

Problem 7

10001個目の素数を求めろという問題。調べたら素数に関するMath::Prime::XSというモジュールが あってその中の is_primeという関数を使ってみたんだけど 10分ぐらい待っても答えがでません でしたね。一応 core2duo 1.8GHzぐらいなんですけど。ある数以下の…

Problem 6

100までの自然数に関して 2乗の和と和の2乗の差を求めろ。難しくはないですね。 #!/usr/bin/perl use strict; use warnings; my ($sum_of_square, $square_of_sum) = p6(100); # 25164150 print "difference is ", ($square_of_sum - $sum_of_square), "\n";…

Problem 5

5問目。1から20までのすべての整数で割り切れる数の最小値を求めろ。 たぶん 1から20の最小公倍数を求めれば答えになるでしょう。リストからポップして 最小公倍数をどんどん求めていく。aとbの最小公倍数は a * b / (aとbの最大公約数)に なるそうなので、…

Problem 4

4問目。3桁の数の掛け算で上から読んでもしたから読んでも同じ数になるもののうち 最大値を選べという問題。それなりに perlらしく解答できたのかな?値を配列で返しても よかったけど、面倒なので文字列で返した。ちなみに 4桁だと 99000099 = 9999 * 9901 …