#include <stdio.h>
#include <string.h>
static char sieve[131072];
#define PRIMEP(n) (((sieve[(n) >> 3] >> ((n) & 7)) & 1) == 0)
static void mksieve() {
register int i, j;
memset(sieve, 0x55, sizeof(sieve));
for(sieve[0] = 0x53, i = 3; i < 1024; i += 2)
if(PRIMEP(i))
for(j = i * i; j < 1048576; j += i)
sieve[j >> 3] |= 1 << (j & 7);
}
int main() {
mksieve();
int k;
for(k = 2; k <= 100; k++)
if(PRIMEP(k))
printf("%d ", k);
return 0;
}
#include <string.h>
static char sieve[131072];
#define PRIMEP(n) (((sieve[(n) >> 3] >> ((n) & 7)) & 1) == 0)
static void mksieve() {
register int i, j;
memset(sieve, 0x55, sizeof(sieve));
for(sieve[0] = 0x53, i = 3; i < 1024; i += 2)
if(PRIMEP(i))
for(j = i * i; j < 1048576; j += i)
sieve[j >> 3] |= 1 << (j & 7);
}
int main() {
mksieve();
int k;
for(k = 2; k <= 100; k++)
if(PRIMEP(k))
printf("%d ", k);
return 0;
}
No comments:
Post a Comment