Cod sursa(job #1111933)

Utilizator toncuvasileToncu Vasile toncuvasile Data 19 februarie 2014 11:43:10
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
//Infoarena. Arhiva Educationala. Ciurul lui Eratostene.

#include<iostream>
#include<fstream>
using namespace std;

void ciur1(int *,int,int &);
//void print(int *,int);

int main(){
    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);
    bool A[2000000],n,ct;
    cin>>n;
    ciur1(A,n,ct);
    cout<<ct;


}

void ciur1(int A[],int n,int &ct){
    ct=0;
    for(int i=0;i<=n;i++) *(A+i)=0;
    for(int i=2;i<=n/2;i++){
        for(int j=i+i;j<=n;j+=i){
            *(A+j)=1;
        }
        if(*(A+i)==0) ct++;
    }
    for(int i=n/2+1;i<=n;i++){
        if(*(A+i)==0) ct++;
    }
}
/*
void print(int A[],int n){
    for(int i=0;i<=n;i++){
        cout<<*(A+i);
    }
}
*/