codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
#include <stdio.h> #define L 5 /* 登録個数の上限 */ int main( void ) { int p[ L + 1 ]; /* 素数登録要配列p (C の配列は 0 から始まる) */ int a[ 3 + 1 ]; /* 「別に作っておく」配列 (C の配列は 0 から始まる) */ int s = 1; /* 算法1。12行まで初期設定。 */ int n = 7; int f0 = 0; int f1 = 0; int i; a[ 1 ] = 2; /* この辺は実は使ってない。| */ a[ 2 ] = 3; a[ 3 ] = 5; p[ 1 ] = 5; label20: for ( i = 1; i <= s; i ++ ) { /* 算法2。27行まで。 */ if ( n % p[ i ] == 0 ) { goto label60; } } if ( n / p[ s ] <= p[ s ] ) { /* 算法3。33行まで。 */ printf( "%d (s=%d)\n", n, s ); } else { goto label70; /* C で「終了」は main 関数脱出なので57行に飛ぶ。 */ } if ( f1 == 1 ) { /* 算法4。35行まで。 */ goto label60; } else { /* 算法5。43行まで。 */ s = s + 1; p[ s ] = n; if ( s == L ) { f1 = 1; } } label60: n = n + 2; /* 算法6。55行まで。 */ if ( f0 == 0 ) { n = n + 2; } if ( f0 == 0 ) { f0 = 1; } else { f0 = 0; } goto label20; label70: return 0; }
Private
[
?
]
Run code
Submit