Cod sursa(job #364631)

Utilizator dornescuvladVlad Eugen Dornescu dornescuvlad Data 16 noiembrie 2009 17:57:51
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<iostream.h>
#include<fstream.h>
#include<math.h>


ifstream f("ciur.in");
ofstream g("ciur.out");
long int v[1000000];
int n,i,j,k,ct,p=0,r=0,ct2;

int main(){
	f>>n;
	v[1]=1;
	k=2;
	while(k<=sqrt(n)+1){
		r=k;
		for(i=2;i<sqrt(k);i++)
			if((k%i==0)&&(k!=i))
			   {v[k]=1;
				ct++;
				while(p<=n){
					 p=p+k;
                         if(p<=n)				
				          v[p]=1;}}
	    if(ct==0)
		{while(r<=n){
			 r=r+k;
			   if(r<=n)	 
			     v[r]=1;}}
		ct=0,p=0,r=0;
	    k++;}	  
	for(i=2;i<=n;i++)
		if(v[i]==0)
			ct2++;
    g<<ct2;}