Pagini recente » Cod sursa (job #1662230) | Cod sursa (job #1718182) | Cod sursa (job #2834650) | Cod sursa (job #1801820) | Cod sursa (job #1948617)
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
const int N = 1e6 + 5 ;
int v[ N ] ;
long long sol ;
int main(){
int n , m , i , j ;
freopen("mins.in","r",stdin);
freopen("mins.out","w",stdout);
scanf("%d%d",&n,&m);
int k = min ( --n , --m );
sol = 1LL * n * m ;
for ( i = 2 ; i <= k ; i++ ){
if ( v [ i ] == -1 ){
continue ;
}else if ( v [ i ] == 0 ){
for ( j = i ; j <= k ; j += i ){
v[ j ]++;
}
if ( ( long long ) i * i <= k ){
for ( j = i * i ; j <= k ; j += i*i ){
v[ j ] = -1;
}
}
}
if ( v [ i ] % 2 == 1 ){
v [ i ] = -1 ;
}else{
v [ i ] = 1 ;
}
sol += 1LL * ( n / i ) * ( m / i ) * v [ i ] ;
}
printf("%lld",sol);
return 0;
}