Cod sursa(job #140208)

Utilizator nimeniaPaul Grigoras nimenia Data 21 februarie 2008 15:37:52
Problema Fractii Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream.h>
#include <math.h>

ifstream f("fractii.in");
ofstream g("fractii.out");

long long prod,i,p,s,n,j,k,n_aux,nprime;

char prime[1000000];
char marc[1000000];


int main(){
//	f>>n;
	//n=10000;

	f>>n;
	s=0;
	s+=n;

  //	s+=n+1+2+2+4;
	for(j=0;j<n+1;j++)prime[j]='0';
	for(j=0;j<n+1;j++)marc[j]='0';
	prime[n+1]='\0';
	for (j=2;j<n;j++)
			if (prime[j]=='0'){
				k=1;
 				while(k<n){
					prime[j*(++k)]='1';
				}
			}

	for (i=2;i<=n;i++)
	{   nprime=1;
		if (prime[i]=='0')s+=(n-n/i);
		else{
		for(j=2;j<=n/2;j++)
			if (prime[j]=='0' && i%j==0)
				for (k=j;k<=n;k+=j) marc[k]='1';
		for (j=2;j<=n;j++)
			if (marc[j]=='0')nprime++;
			else marc[j]='0';
		s+=nprime;}

	}

	g<<s;


	f.close();
	g.close();
	return 0;
}