记录编号 27588 评测结果 AAAAAAAAAA
题目名称 横幅 最终得分 100
用户昵称 GravatarMakazeu 是否通过 通过
代码语言 C++ 运行时间 0.115 s
提交时间 2011-09-26 21:59:45 内存使用 0.26 MiB
显示代码纯文本
#include <cstdio>
int w, h, l, r, t;
unsigned long long s = 0;

inline int gcd(int x,int y) 
{ 
    int xx=x,yy=y; //xx為大數、yy為小數 
    if(y>x) {xx=y;yy=x;} //使xx成為最大數 
    int t;//餘數 
    t=xx%yy; 
    while (t) //如果t>0 
    { 
        xx=yy; 
        yy=t; 
        t=xx%yy; 
    } 
    return yy; 
}

int main() 
{
    freopen("banner.in","r",stdin);
    freopen("banner.out","w",stdout);
    scanf("%d %d %d %d", &w, &h, &l, &r);
    l = l*l; r = r*r;
    for(int a=1; a<=w+1; a++)
	{
		for(int b=1; b<=h+1; b++)
        {
			if(gcd(a, b) == 1) 
			{
                t = a*a + b*b;
                if(t >= l && t <= r)
                    s += (w-a+1)*(h-b+1)*2;
            }
		}
	}
    if(l <= 1)
        s += w*(h+1) + h*(w+1);
    printf("%lld\n", s);
    return 0;
}