模和除
两个整数x和y,满足1<=x<=a,1<=y<=b 且x%y等于x/y的x和y的对数有多少?
x%y是x除以y的余数,
x/y是x除以y的商,即整数除。
不超过1000组样例,每个样例占一行,包含两个整数a,b (1 <= a,b <= 10^10);
每个样例输出一行,一个整数,表示答案。
#include<stdio.h> #include<math.h> int main() { __int64 a,b,sum,c; __int64 i,j,temp; while(scanf("%I64d%I64d",&a,&b)!=EOF) { sum=0; if(a<1||b<1) continue; if(b+1>=a) { for(i=1;i<sqrt(a);i++) { temp=a/i-1-i; if(temp>0) sum+=temp; } } else { sum+=b-1; j=(__int64)sqrt(a)<b?(__int64)sqrt(a):b; for(i=2;i<=j;i++) { c=a/i; if(c>b) { sum+=b-i; } else { temp=c-i-1; if(temp>0) sum+=temp; } } } printf("%I64d\n",sum); } return 0; }
纪念一下!
原文:http://www.cnblogs.com/yuyixingkong/p/3737782.html