Pagini recente » Cod sursa (job #509493) | Cod sursa (job #273027) | Cod sursa (job #501796) | Cod sursa (job #2663149) | Cod sursa (job #2027592)
#include <stdio.h>
#include <stdlib.h>
int prim[1000001];
bool estiUratSiProst[1000001];
int main(){
FILE*fi,*fo;
fi = fopen("mins.in","r");
fo = fopen("mins.out","w");
int c, d;
fscanf(fi,"%d%d", &c, &d);
c--;
d--;
if(c > d){
int aux = c;
c = d;
d = aux;
}
for(int i = 2; i <= c; i++){
if(prim[i] == 0){
for(int j = i; j <= c; j += i)
prim[j]++;
for(long long j = 1LL * i * i; j <= c; j += 1LL * i * i)
estiUratSiProst[j] = 1;
}
}
long long rez = 1LL * c * d;
for(int i = 2; i <= c; i++){
if(!estiUratSiProst[i]){
if(prim[i] % 2 == 1)
rez = rez - (c / i) * (d / i);
else
rez = rez + (c / i) * (d / i);
}
}
fprintf(fo,"%lld", rez);
fclose(fi);
fclose(fo);
return 0;
}