#include<iostream> #include<cmath> using namespace std; typedef struct point { int x,y; }; point t[3]; double triangle_area(point t[]) //计算三角形的面积 { return fabs(t[0].x*t[1].y+t[1].x*t[2].y+t[2].x*t[0].y -t[1].x*t[0].y-t[2].x*t[1].y-t[0].x*t[2].y)/2; } int GCD(int x,int y) { if(y==0)return x; else return GCD(y,x%y); } int main() { int i,j,k; int n,m,p; while(cin>>n>>m>>p) { int num1=GCD(n,m);//最大公约数就是该线段上的点个数 int num2=GCD(abs(n-p),m); int num3=p; t[0].x=0,t[0].y=0; t[1].x=n,t[1].y=m; t[2].x=p,t[2].y=0; double area=triangle_area(t); int num=(double)(area-(double)(num1+num2+num3)/2+1); cout<<num<<endl; } return 0; }