已知 a mod b = c 表示 a 除以 b 的余数为 c 。
小龙很擅长数学,如果小龙知道 a 和 b 的值,那么他很快就能算出 c 的值。
邪恶的川川不想让小龙如此轻易的算出答案,于是他只给了小龙 a 和 c 的值,并且让小龙
算出有多少个正整数 b 合法。
小龙被难住了,它请求你帮他解决这个问题,请你帮助它。
输入数据
第一行包含两个整数 a 和 c (0 ≤ a, c ≤ 109)。
输出数据
如果存在无数个合法的 b ,请输出 T hisislong,
否则输出合法的 b 的个数。
样例
标准输入 标准输出
10 10 Thisislong
标准输入 标准输出
10 3 1
d=a-c < - > c+k*i=a(k为正整数) - > i为a-c的因子且i>c
a%b=c - > 推出b>c, b为a-c的因子
#include<stdio.h>
int main(){int a,c;scanf("%d %d",&a,&c);if(a==c){printf("Thisislong");return 0;}int d=a-c;//b最大为a-c; int sum=0;for(int i=1;i*i<=d;i++){ //遍历d的因子if(d%i==0){ //判断是否是d的因子 if(i>c){//printf("%d\n",i);sum++;}if(d/i!=i){if(d/i>c)sum++; //d/i是另一个因子 //printf("%d\n",d/i);}}}printf("%d",sum);return 0;
}