C/C++

Project Euler 69

オイラーのトーティエント関数、φ(n)[時々ファイ関数とも呼ばれる]は、nと互いに素なn未満の数の数を定める。たとえば、1、2、4、5、7、そして8はみな9未満で9と互いに素であり、φ(9)=6. n 互いに素な数 φ(n) n/φ(n) 2 1 1 2 3 1,2 2 1.5 4 1,3 2 2 5 1,2,3,…

Project Euler 58

1から初めて, 以下のように反時計回りに数字を並べていくと, 辺の長さが7の渦巻きが形成される. 37 36 35 34 33 32 31 38 17 16 15 14 13 30 39 18 5 4 3 12 29 40 19 6 1 2 11 28 41 20 7 8 9 10 27 42 21 22 23 24 25 26 43 44 45 46 47 48 49 面白いこと…

TopCoder SRM 433 DIV 2

Problem Check Points 250 ◯ 243.98 500 × - 1000 - -

Project Euler 57

2の平方根は無限に続く連分数で表すことができる.√ 2 = 1 + 1/(2 + 1/(2 + 1/(2 + ... ))) = 1.414213... 最初の4回の繰り返しを展開すると以下が得られる. 1 + 1/2 = 3/2 = 1.5 1 + 1/(2 + 1/2) = 7/5 = 1.4 1 + 1/(2 + 1/(2 + 1/2)) = 17/12 = 1.41666... …

TopCoder SRM 434 DIV 2

Problem Check Points 250 ◯ 220.89 500 × - 1000 - - また500で凡ミスっ・・・! (変数)=='0'と書くところを (変数)==0 と書いてしまいました・・・

Project Euler 92

各桁の2乗を足し合わせて新たな数を作ることを、同じ数が現れるまで繰り返す。例えば 44 → 32 → 13 → 10 → 1 → 1 85 → 89 → 145 → 42 → 20 → 4 → 16 → 37 → 58 → 89のような列である。どちらも1か89で無限ループに陥っている。 驚くことに、どの数から始めて…

TopCoder SRM 435 DIV 2

Problem Check Points 250 ◯ 216.58 500 ◯ 335.45 1000 - - 1000がもう少しで解けそうだった! 実際解けてないから点にはなってないんだけども、1000も解けそうな問題があるんだなー、と。

TopCoder SRM 486 DIV 2

Problem Check Points 250 ◯ 182.73 500 × - 1000 - - Rating 401 -> 622 とりあえず250解けたのでよかった。 500はif文をelse ifと書いていただけの残念すぎる間違い。

TopCoder SRM 437 DIV 2

beauty beautyうるさかったw

Project Euler 49

項差3330の等差数列1487, 4817, 8147は次の2つの変わった性質を持つ。(i)3つの項はそれぞれ素数である。 (ii)各項は他の項の置換で表される。 1, 2, 3桁の素数にはこのような性質を持った数列は存在しないが、4桁の増加列にはもう1つ存在する。それではこの…

Project Euler 59

各文字はそれぞれ一意のコードに割り当てられている. よく使われる標準としてASCII (American Standard Code for Information Interchange) がある. ASCIIでは, 大文字A = 65, アスタリスク (*) = 42, 小文字k = 107というふうに割り当てられている.モダンな…

Project Euler 63

5桁の数 16807 = 7^5は自然数を5乗した数である. 同様に9桁の数 134217728 = 8^9も自然数を9乗した数である. 自然数をn乗して得られるn桁の正整数は何個あるか? http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2063

TopCoder SRM 438 DIV 2

Problem Check Points 250 ○ 204.20 500 ○ 222.36 1000 - - 「問題が面白くない」と不評でした。力技だもんなぁ。

Project Euler 44

五角数は で生成される. 最初の10項は1, 5, 12, 22, 35, 51, 70, 92, 117, 145, ... である.である. しかし差 70 - 22 = 48は五角数ではない.五角数のペア とについて, 差と和が五角数になるものを考える. 差を と書く. 差 D の最小値を求めよ.

POJ 1004 Financial Management

Description Larry graduated this year and finally has a job. He's making a lot of money, but somehow never seems to have enough. Larry has decided that he needs to grab hold of his financial portfolio and solve his financing problems. The …

POJ 1852 Ants

Description An army of ants walk on a horizontal pole of length l cm, each with a constant speed of 1 cm/s. When a walking ant reaches an end of the pole, it immediatelly falls off it. When two ants meet they turn back and start walking in…

TopCoder SRM 485 DIV 2

Problem Check Points 250 × - 500 - - 1000 - - これはひどい!最悪のスタートを切りました・・・ 250 -> 問題読み間違え 500 -> 実装がこんがらがった

TopCoder SRM 439 DIV 2

Problem Check Points 250 ○ 164.76 500 ○ 247.74 1000 - - 初めて500が通ったぞー!

Project Euler 46

Christian Goldbachは全ての奇合成数は平方数の2倍と素数の和で表せると予想した.9 = 7 + 2×1^2 15 = 7 + 2×2^2 21 = 3 + 2×3^2 25 = 7 + 2×3^2 27 = 19 + 2×2^2 33 = 31 + 2×1^2 後に, この予想は誤りであることが分かった.平方数の2倍と素数の和で表せない…

Project Euler 43

数1406357289は0から9のPandigital数である (0から9が1度ずつ現れるので). この数は部分語が面白い性質を持っている.を1桁目, を2桁目の数とし, 以下順にを定義する. この記法を用いると次のことが分かる.=406は2で割り切れる =063は3で割り切れる =635は5で…

Project Euler 47

連続する2つの数がそれぞれ2つの異なる素因数を持つのは14 = 2 × 7 15 = 3 × 5 の場合である. 同様に連続する3つの数がそれぞれ3つの異なる素因数を持つのは644 = 22 × 7 × 23 645 = 3 × 5 × 43 646 = 2 × 17 × 19 の場合である. 連続する4つの数がそれぞれ4…

Project Euler 50

素数41は6つの連続する素数の和として表せる:41 = 2 + 3 + 5 + 7 + 11 + 13. 100未満の素数を連続する素数の和で表したときにこれが最長になる.同様に, 連続する素数の和で1000未満の素数を表したときに最長になるのは953で21項を持つ.100万未満の素数を連続…

Project Euler 38

192を1, 2, 3で掛けてみよう. 192 × 1 = 192 192 × 2 = 384 192 × 3 = 576 積を連結することで1から9のPandigital数 192384576 が得られる. 192384576を 192と(1,2,3)の連結積と呼ぶ.同じようにして, 9を1,2,3,4,5と掛け連結することでPandigital数918273645…

TopCoder SRM 440 DIV 2

Problem Check Points 250 ○ 194.24 500 - - 1000 - - 500を提出すらできないという体たらく。代わりにDFSを覚えました。

TopCoder SRM 441 DIV 2

Problem Check Points 250 ○ 186.53 500 × - 1000 - - 500は痛恨のキャストミス。なぜlong longにしなかったぁあああ

TopCoder SRM 442 DIV 2

@Matsu4512 と @phyllo にホイホイ誘われてTopCoderの環境を入れました。 プラグイン環境について参考にしたのはこちら。 で、さっそく3人で過去問を75分でやってみました。 結果はProblem 250だけ正解、Problem 500はSystem Checkで2秒制限アウト、Problem …

Project Euler 303

正の整数 n に対し, f(n) を, n の倍数であり 10 進数で表すと 2 以下の数字のみが用いられる最小の数と定義する.ゆえに, f(2)=2, f(3)=12, f(7)=21, f(42)=210, f(89)=1121222 である.また, である. を求めよ. #pragma comment(lib,"mpir.lib") #include <iostream> #</iostream>…

Project Euler 79

オンラインバンクで通常使われるsecurity methodは, パスコードからランダムに選んだ3文字をユーザーに要求するものである. たとえば, パスコードが531278のとき, 2番目, 3番目, 5番目の文字を要求されるかもしれない. このとき, 期待される答えは: 317 であ…

Project Euler 55

47とその反転を足し合わせると, 47 + 74 = 121となり, 回文数になる. 全ての数が素早く回文数になるわけではない. 349を考えよう, 349 + 943 = 1292, 1292 + 2921 = 4213 4213 + 3124 = 7337 349は, 3回の操作を経て回文数になる. まだ証明はされていないが,…

Project Euler 97

100万桁を超える初めての素数は1999年に発見された. これはメルセンヌ素数であり, 2^6972593-1 である. 実際, 2,098,960桁ある. それ以降も, より多くの桁になるメルセンヌ素数 (2^p-1の形の数) が他にも発見されている. しかし, 2004年に, 非常に大きな非メ…