#include <bits/stdc++.h>
using namespace std;
class DreamingAboutCarrots{
public:
int carrotsBetweenCarrots(int x1, int y1, int x2, int y2){
if(x1 == y1 && x2 == y2)return(max(x1,x2)-min(y1,y2))-1;
int cnt=0;
for(int x=min(x1,x2) ; x<=max(x1,x2) ; x++){
for(int y=min(y1,y2) ; y<= max(y1,y2) ; y++){
if((y* (x2-x1)) == ( (x *(y2-y1)) - (x2 *(y2-y1))) + (y2 *(x2-x1)))cnt++;
}
}
return (cnt-2);
}
};
int main()
{
ios::sync_with_stdio(0);
cin.tie(),cout.tie();
int a,b,c,d;
cin>>a>>b>>c>>d;
DreamingAboutCarrots ob;
cout<<ob.carrotsBetweenCarrots(a,b,c,d);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNsYXNzIERyZWFtaW5nQWJvdXRDYXJyb3RzewpwdWJsaWM6CiAgICBpbnQgY2Fycm90c0JldHdlZW5DYXJyb3RzKGludCB4MSwgaW50IHkxLCBpbnQgeDIsIGludCB5Mil7CiAgICAgICBpZih4MSA9PSB5MSAmJiB4MiA9PSB5MilyZXR1cm4obWF4KHgxLHgyKS1taW4oeTEseTIpKS0xOwogICAgICAgaW50IGNudD0wOwogICAgICAgZm9yKGludCB4PW1pbih4MSx4MikgOyB4PD1tYXgoeDEseDIpIDsgeCsrKXsKICAgICAgICBmb3IoaW50IHk9bWluKHkxLHkyKSA7IHk8PSBtYXgoeTEseTIpIDsgeSsrKXsKICAgICAgICAgICAgaWYoKHkqICh4Mi14MSkpID09ICggKHggKih5Mi15MSkpIC0gKHgyICooeTIteTEpKSkgKyAoeTIgKih4Mi14MSkpKWNudCsrOwogICAgICAgIH0KICAgICAgIH0KICAgICAgIHJldHVybiAoY250LTIpOwogICAgfQp9OwppbnQgbWFpbigpCnsKICBpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsKICBjaW4udGllKCksY291dC50aWUoKTsKICAgIGludCBhLGIsYyxkOwogICAgY2luPj5hPj5iPj5jPj5kOwpEcmVhbWluZ0Fib3V0Q2Fycm90cyBvYjsKY291dDw8b2IuY2Fycm90c0JldHdlZW5DYXJyb3RzKGEsYixjLGQpOwp9Cg==