Pagini recente » Autentificare | Cod sursa (job #928879) | Cod sursa (job #1750754) | Cod sursa (job #2684766) | Cod sursa (job #1753640)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
const int MAXN = 1000001;
int ciurn[MAXN],ciurp[MAXN];
ifstream f("mins.in");
ofstream g("mins.out");
int main(){
int c,d,n;
long long sol,patrat,card=0;
f>>c>>d;
c--;
d--;
n=min(c,d);
for(int i=2;i<=n;i++){
if(ciurn[i]==0){
if(1LL*i*i<=n)
patrat=1LL*i*i;
else
patrat=n+1;
for(int j=i;j<=n;j+=i){
ciurn[j]++;
if(j%patrat==0)
ciurp[j]=1;
}
}
if(ciurp[i]==1)
continue;
if(ciurn[i]&1)
card+=1LL*(c/i)*(d/i);
else
card-=1LL*(c/i)*(d/i);
}
g<<1LL*c*d-card;
return 0;
}