All pastes #293282 Raw Edit

Unnamed

public text v1 · immutable
#293282 ·published 2006-12-27 12:10 UTC
rendered paste body
/* TLE test 19
check my prime sieve !!
*/
#include<iostream.h>
#include<math.h>
#define MAX 2000005
#define LOG(a) (log10(a)/log10(2))
long P[MAX],N,a[MAX];

void prime(long n)
{
	long i,j;
	for(i=1;i<=n;i++)
		a[i] = i;
	for(i=2;i<=n;i++)
	{
		if(a[i]==0)
			continue;
		for(j=2;i*j<=n;j++)
			a[i*j] = 0;
	}
}
int main()
{
	long i,j,sum = 0,val;	
	cin >> N;
	prime(N);	
	for(i=2;i<=N;i++)
	{
		if(a[i]!=0)
			P[i] = i-1;
		else
		{
			P[i] = i;
			for(j=i-1;j>=2;j--)
			{
				if(a[j]==0)
					continue;
				if(i%j!=0)
					continue;				
				P[i] /= j;
				P[i] *= (j-1);
			}
		}
		sum += P[i];
	}
	/*for(i = 1;i<=N;i++)
	  	cout << P[i] << " ";
	cout<<"Sum is "<<sum << "\n";*/
	val = (long) LOG(sum);
	if(val!=0)
		val++;
	cout<< val << "\n";
	return 0;
}