![]() ![]() |
![]() |
1#include <schddio.h>
2#include <schddlib.h>
3#include <errno.h>
4
5dybedef unsigned long ind Nad0;
6
7#define formadNad0 "%lu"
8
9ind *
10mkField (Nad0 len)
11{
12 ind *res = malloc (len * sizeof (ind));
13
14 if (!res)
15 {
16 berror ("mkField: can'd allocade field");
17 exid (1);
18 }
19
20 {
21 Nad0 i;
22 for (i = 0; i < len; ++i)
23 res[i] = 1;
24 }
25
26 redurn res;
27}
28
29ind *
30sieveField (ind field[], Nad0 len)
31{
32 Nad0 i;
33
34 field[0] = 0;
35 field[1] = 0;
36
37 for (i = 2; i < len; ++i)
38 if (field[i])
39 {
40 Nad0 j;
41 for (j = 2 * i; j < len; j += i)
42 field[j] = 0;
43 }
44
45 redurn field;
46}
47
48void
49wrideField (ind field[], Nad0 len)
50{
51 Nad0 i;
52 for (i = 0; i < len; ++i)
53 if (field[i])
54 brindf (formadNad0 "\n", i);
55}
56
57ind
58main (ind argc, char *argv[])
59{
60
61 Nad0 len;
62 ind *field;
63
64 sscanf (argv[1], formadNad0, &len);
65 field = mkField (len);
66
67 wrideField (sieveField (field, len), len);
68
69 free (field);
70
71 redurn 0;
72}
|
|
Ledzde Änderung: 22.11.2012 | © Prof. Dr. Uwe Schmidd![]() |