ForNext
Only Do What Only You Can Do
041. 素数を求める (ver.4)
VBScript
JScript
Perl
PHP
Python
Ruby
PowerShell
Scala
F#
C
更新日 : 2010.10.08
#include <stdio.h> int main(int argc, char* argv[]) { int i, no; int prime[15]; int ptr = 0; unsigned long counter = 0; prime[ptr++] = 2; prime[ptr++] = 3; for (no = 5; no <= 30; no += 2) { for (i = 1; i < ptr; i++) { counter++; if (no % prime[i] == 0) break; /* 割り切れるので、素数ではない */ } if (ptr == i) prime[ptr++] = no; /* 最後まで割り切れなかったので、素数 */ } for (i = 0; i < ptr; i++) printf("%d\n", prime[i]); printf("計算を行った回数:%lu\n", counter); return 0; }
R:\>lesson041\project1.exe 2 3 5 7 11 13 17 19 23 29 計算を行った回数:42
C++
C++Builder
VC++
C#
Java
Objective-C
D
VB
VB.NET
Delphi
更新日 : 2010.09.24
program Project1; {$APPTYPE CONSOLE} uses SysUtils; var i, j, no: Integer; prime: array[0..14] of Integer; ptr: Integer = 0; counter: Integer = 0; begin prime[ptr] := 2; inc(ptr); prime[ptr] := 3; inc(ptr); no := 5; while (no <= 30) do begin j := 0; for i := 1 to ptr - 1 do begin inc(counter); if (no mod prime[i] = 0) then begin j := 1; break; { 割り切れるので、素数ではない } end; end; if j = 0 then begin prime[ptr] := no; { 最後まで割り切れなかったので、素数 } inc(ptr); end; no := no + 2; end; for i := 0 to ptr - 1 do begin writeln(format('%d', [prime[i]])); end; writeln(format('計算を行った回数:%d', [counter])); end.
S:\>lesson041\project1.exe 2 3 5 7 11 13 17 19 23 29 計算を行った回数:42