Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #define N 1111111
- using namespace std;
- int a,b,n,m,phi[N];
- bool bs[N];
- long long ans;
- long long getsum(int x){
- return x*1ll*(x+1)/2;
- }
- void calc_phi(int n){
- for (int i=1;i<=n;i++) phi[i]=i;
- for (int i=2;i<=n;i++){
- if (bs[i]) continue;
- for (int j=i;j<=n;j+=i){
- bs[j]=1;
- phi[j]-=phi[j]/i;
- }
- }
- }
- void solve(int n,int m){
- int k=n<?m;
- for (int i=1;i<=k;i++) ans+=phi[i]*1ll*(n/i)*(m/i);
- }
- int main(){
- freopen("input.txt","r",stdin);
- freopen("output.txt","w",stdout);
- scanf("%d%d%d%d",&n,&m,&b,&a);
- calc_phi(n<?m);
- solve(a-1,b-1);
- solve(a-1,m-b);
- solve(n-a,b-1);
- solve(n-a,m-b);
- ans+=getsum(a-1)+getsum(b-1)+getsum(n-a)+getsum(m-b);
- printf("%I64d\n",ans);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement