2008-04-01から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 …

Problem 3

素因数の最大値を求める問題。問題の数値が大きいからそれなりに時間がかかりますね。 なんでかは知らないけど、素因数は目的の数の二乗根より小さいのでそれで計算時間を短縮。 #!/usr/bin/perl use strict; use warnings; print "max prime factor is ", p…

Problem 2

2問目。問題を見たときに偶数の項のことを偶数番目の項と思ったんだけど、英語を 見ると even-valued termsになっているので値が偶数の項みたいです。 #!/usr/bin/perl use strict; use warnings; print "sum is ", p2(4000000), "\n"; # 4613732 sub p2 { m…

Problem1

結構 http://odz.sakura.ne.jp/projecteuler/index.php?Project%20Euler が流行っているようなので便乗して頑張る。使用言語は基本 Perlで。 #!/usr/bin/perl use strict; use warnings; print "input number >>> "; chomp( my $num = <STDIN>); print "sum is ", p</stdin>…

gmailでメール送信。

Gmailを使っているんですが、wanderlustからメールを送ろうとしたら gnutls-cliがありませんっていうエラーが出た。 % sudo aptitude search gnutls としたら送信できるようになりました。