Project Euler : Problem 001 ” Multiples of 3 and 5(3と5の倍数)”

2016年03月29日 10:26

Problem 1

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

 

Find the sum of all the multiples of 3 or 5 below 1000.

 

natural number 自然数

 

10までの3と5の倍数の和は…

3 +5+6+9=23

では…1000までの3と5の倍数の和は…

計算してみましょう。Excelを使うと解けますよ。

 

~考え方~

(3の倍数の総和)+(5の倍数の総和)-(3と5の公倍数の総和)=(答え)

 

プログラミングしてみると…

求める解をTOTALとします。

 

Set TOTAL to 0;

 ← ここの意味:そのTOTALの初期値を0とします。

for every number NUM from 1 to 999 do

 ← ここの意味:1~999まで次の処理をしなさい。

  if NUM mod 3 = 0 or if NUM mod 5 = 0 then

    add NUM to TOTAL;            

 ← ここの意味:3または5で割り切れたら、その数を加算して、TOTALに入れます。

   ただし、3でも5でも割り切れたら、加算してはいけません。

   『or』の意味はそういう意味なのです。論理学を学べばすぐわかります。

   もっと優しく言えば、上記の考え方の太字にある通り、3と5の公倍数は加算しなければいいのです。

   別な言い方をすれば、15の倍数は加算できないということです。ダブってしまいますからね。

output TOTAL                   

このProject Eulerは、プログラムを組む上で、どのようなアルゴリズム(手順、考え方)で

より速く計算をすることができるかが大切なのです。

右のように、力まかせに解くこともできます。

① 基本に忠実に解くこと。

② 高校生の知識を使って解いてみること。

③ 大学生の知識を使って解いてみること。

そんな風にこのProject Eulerを利用してみると、面白いですよ。

では、実際に計算してみましょう。

      3と5の公倍数
倍数 3 5 15
1 3 5 15
2 6 10 30
3 9 15 45
4 12 20 60
5 15 25 75
6 18 30 90
7 21 35 105
8 24 40 120
9 27 45 135
10 30 50 150
11 33 55 165
12 36 60 180
13 39 65 195
14 42 70 210
15 45 75 225
16 48 80 240
17 51 85 255
18 54 90 270
19 57 95 285
20 60 100 300
21 63 105 315
22 66 110 330
23 69 115 345
24 72 120 360
25 75 125 375
26 78 130 390
27 81 135 405
28 84 140 420
29 87 145 435
30 90 150 450
31 93 155 465
32 96 160 480
33 99 165 495
34 102 170 510
35 105 175 525
36 108 180 540
37 111 185 555
38 114 190 570
39 117 195 585
40 120 200 600
41 123 205 615
42 126 210 630
43 129 215 645
44 132 220 660
45 135 225 675
46 138 230 690
47 141 235 705
48 144 240 720
49 147 245 735
50 150 250 750
51 153 255 765
52 156 260 780
53 159 265 795
54 162 270 810
55 165 275 825
56 168 280 840
57 171 285 855
58 174 290 870
59 177 295 885
60 180 300 900
61 183 305 915
62 186 310 930
63 189 315 945
64 192 320 960
65 195 325 975
66 198 330 990
67 201 335  
68 204 340  
69 207 345  
70 210 350  
71 213 355  
72 216 360  
73 219 365  
74 222 370  
75 225 375  
76 228 380  
77 231 385  
78 234 390  
79 237 395  
80 240 400  
81 243 405  
82 246 410  
83 249 415  
84 252 420  
85 255 425  
86 258 430  
87 261 435  
88 264 440  
89 267 445  
90 270 450  
91 273 455  
92 276 460  
93 279 465  
94 282 470  
95 285 475  
96 288 480  
97 291 485  
98 294 490  
99 297 495  
100 300 500  
101 303 505  
102 306 510  
103 309 515  
104 312 520  
105 315 525  
106 318 530  
107 321 535  
108 324 540  
109 327 545  
110 330 550  
111 333 555  
112 336 560  
113 339 565  
114 342 570  
115 345 575  
116 348 580  
117 351 585  
118 354 590  
119 357 595  
120 360 600  
121 363 605  
122 366 610  
123 369 615  
124 372 620  
125 375 625  
126 378 630  
127 381 635  
128 384 640  
129 387 645  
130 390 650  
131 393 655  
132 396 660  
133 399 665  
134 402 670  
135 405 675  
136 408 680  
137 411 685  
138 414 690  
139 417 695  
140 420 700  
141 423 705  
142 426 710  
143 429 715  
144 432 720  
145 435 725  
146 438 730  
147 441 735  
148 444 740  
149 447 745  
150 450 750  
151 453 755  
152 456 760  
153 459 765  
154 462 770  
155 465 775  
156 468 780  
157 471 785  
158 474 790  
159 477 795  
160 480 800  
161 483 805  
162 486 810  
163 489 815  
164 492 820  
165 495 825  
166 498 830  
167 501 835  
168 504 840  
169 507 845  
170 510 850  
171 513 855  
172 516 860  
173 519 865  
174 522 870  
175 525 875  
176 528 880  
177 531 885  
178 534 890  
179 537 895  
180 540 900  
181 543 905  
182 546 910  
183 549 915  
184 552 920  
185 555 925  
186 558 930  
187 561 935  
188 564 940  
189 567 945  
190 570 950  
191 573 955  
192 576 960  
193 579 965  
194 582 970  
195 585 975  
196 588 980  
197 591 985  
198 594 990  
199 597 995  
200 600    
201 603    
202 606    
203 609    
204 612    
205 615    
206 618    
207 621    
208 624    
209 627    
210 630    
211 633    
212 636    
213 639    
214 642    
215 645    
216 648    
217 651    
218 654    
219 657    
220 660    
221 663    
222 666    
223 669    
224 672    
225 675    
226 678    
227 681    
228 684    
229 687    
230 690    
231 693    
232 696    
233 699    
234 702    
235 705    
236 708    
237 711    
238 714    
239 717    
240 720    
241 723    
242 726    
243 729    
244 732    
245 735    
246 738    
247 741    
248 744    
249 747    
250 750    
251 753    
252 756    
253 759    
254 762    
255 765    
256 768    
257 771    
258 774    
259 777    
260 780    
261 783    
262 786    
263 789    
264 792    
265 795    
266 798    
267 801    
268 804    
269 807    
270 810    
271 813    
272 816    
273 819    
274 822    
275 825    
276 828    
277 831    
278 834    
279 837    
280 840    
281 843    
282 846    
283 849    
284 852    
285 855    
286 858    
287 861    
288 864    
289 867    
290 870    
291 873    
292 876    
293 879    
294 882    
295 885    
296 888    
297 891    
298 894    
299 897    
300 900    
301 903    
302 906    
303 909    
304 912    
305 915    
306 918    
307 921    
308 924    
309 927    
310 930    
311 933    
312 936    
313 939    
314 942    
315 945    
316 948    
317 951    
318 954    
319 957    
320 960    
321 963    
322 966    
323 969    
324 972    
325 975    
326 978    
327 981    
328 984    
329 987    
330 990    
331 993    
332 996    
333 999    
Total 166833 99500 33165

上記の通り、

(3の倍数の総和)+(5の倍数の総和)-(3と5の公倍数の総和)=(答え)

つまり、
  166833+99500-33165=233168
 
答えは、233168となるのです。
そんなに難しくないですよね。でも、総和を求める公式を高校生で習うので、
その公式に当てはめるともっと簡単にできるはずです。
 
それでは、また。気が向いたら、2問目を解きます。沢山、問題があるので、ぜひ、やってみてくださいね。

—————

戻る


お問い合わせ先

takeshin44

ハッカー行為や迷惑メールだけはお避け下さい。


ブログ

意味不明な説明文

2022年12月27日 18:41
「国には都から国司(こくし)が派遣(はけん)され、地方の豪族

—————

アクセス数

2021年08月20日 23:29
全くアクセスせずにいた私。気が付いたら、意外とアクセス数が伸

—————

平和について

2021年08月20日 22:57
先日、改憲について話す機会があった。日本国憲法 第9条をどう

—————