[ create a new paste ] login | about

Link: http://codepad.org/Oxfd5gz9    [ raw code | output | fork ]

C, pasted on Jan 24:
#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;
}


Output:
7 (s=1)
11 (s=2)
13 (s=3)
17 (s=4)
19 (s=5)
23 (s=5)
29 (s=5)
31 (s=5)
37 (s=5)
41 (s=5)
43 (s=5)
47 (s=5)
53 (s=5)
59 (s=5)
61 (s=5)
67 (s=5)
71 (s=5)
73 (s=5)
79 (s=5)
83 (s=5)
89 (s=5)
97 (s=5)
101 (s=5)
103 (s=5)
107 (s=5)
109 (s=5)
113 (s=5)
127 (s=5)
131 (s=5)
137 (s=5)
139 (s=5)
149 (s=5)
151 (s=5)
157 (s=5)
163 (s=5)
167 (s=5)
173 (s=5)
179 (s=5)
181 (s=5)
191 (s=5)
193 (s=5)
197 (s=5)
199 (s=5)
211 (s=5)
223 (s=5)
227 (s=5)
229 (s=5)
233 (s=5)
239 (s=5)
241 (s=5)
251 (s=5)
257 (s=5)
263 (s=5)
269 (s=5)
271 (s=5)
277 (s=5)
281 (s=5)
283 (s=5)
293 (s=5)


Create a new paste based on this one


Comments: