Cod sursa(job #631063)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 6 noiembrie 2011 21:02:19
Problema Mins Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<stdio.h>

#define maxdim 1000005

using namespace std;

FILE*f=fopen("mins.in","r");
FILE*g=fopen("mins.out","w");

int c,d,i,j; long long sol;
int ciur[maxdim];

int main () {
	
	fscanf(f,"%d %d",&c,&d); --c; --d;
	
	for ( i = 2 ; i <= c ; ++i ){
		if ( !ciur[i] ){
			ciur[i] = 1;
			for ( j = i + i ; j <= c ; j += i ){
				if ( !(j % (i*i)) )
					ciur[j] = -1;
				if ( ciur[j] != -1 )	++ciur[j];
			}
		}
	}
	
	for ( i = 2 ; i <= c ; ++i ){
		if ( ciur[i] != -1 ){
			if ( ciur[i] & 1 ){
				sol += 1LL * (c / i) * (d / i);
			}
			else{
				sol -= 1LL * (c / i) * (d / i);
			}
		}
	}
	
	sol = 1LL * c * d - sol;
	
	fprintf(g,"%lld\n",sol);
	
	fclose(f);
	fclose(g);
	
	return 0;
}