Cod sursa(job #3278614)

Utilizator andreirose44Turcu Andrei andreirose44 Data 20 februarie 2025 11:59:50
Problema Ciurul lui Eratosthenes Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include<stdio.h>

int p[1000001];

int prim(int x)
{
    int nr=1,i,j;
    for(i = 1; ((i*i)<<1) + (i<<1) <= x; i++){
        if(p[i]==0){
            for(j = ((i*i)<<1) + (i<<1); (j<<1)+1 <= x; j+=(i<<1)+1){
                p[j] = 1;
                //printf("%d\n",j);
            }
        }
    }
    for(i = 1; (i<<1)+1 <= x;i++)
        if(p[i]==0){
        nr++;
        printf("%d ",i);
        }
    return nr;
}
int main(){
    FILE* in = fopen("ciur.in","r");
    FILE* out = fopen("ciur.out","w");
    
    int n;

    fscanf(in,"%d",&n);

    fprintf(out,"%d",prim(n));

    fclose(in);
    fclose(out);
    return 0;
}