题目链接:http://codeforces.com/problemset/problem/495/B

题目意思:给出两个非负整数a,b,求出符合这个等式      的所有x,并输出 x 的数量,如果 x 有无限多个,那么输出 infinity。

  想了半个多小时......有个地方想遗漏了。

  a mod x == b,等价于  a = k*x + b。设 mul = a - b,那么 k*x = mul,然后就不断枚举 mul 的因子,即 kx = mul。由于 mod 出来的结果为 b,那么 k 或 x 至少有一个比 b 大。

  /***************************************

  我没有想出来的地方是,求出来两个因子 i、mul/i 只保留大的那个,然后跟 b 比较,大于的话统计个数(累计一次)。但是没有想到 i 和 mul/i 可能两个都比 b 大,那么此时应该是累计两次!

  ****************************************/

  还有一些需要注意的地方,因为 a,b最大可能达到 1e9,枚举因子的时候,平方根以内枚举即可。最后就是输出 infinity 的情况,就是 a = b,根据样例看出来的。此时 kx = 0 。

  

 #include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std; int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif // ONLINE_JUDGE
int a, b;
while (scanf("%d%d", &a, &b) != EOF)
{
int ans = ;
int mul = a - b;
if (mul == )
printf("infinity\n");
else
{
bool flag = false;
for (int i = ; i*i <= mul; i++)
{
if (mul % i == )
{
if (i > b)
ans++;
if (mul/i > b && mul/i != i) // 注意
ans++;
}
}
printf("%d\n", ans);
}
}
return ;
}

最新文章

  1. Android Git 客户端
  2. MyBatis学习总结_14_Mybatis使用技巧总结
  3. poj 3694 Network
  4. TP分析
  5. iOS web与js的简单交互
  6. 怎样在 Swift 项目中使用 CocoaPods
  7. golang实现tcp接入服务器
  8. 结构-行为-样式 - Angularjs 环境下Ztree结合JqueryUI实现拖拽
  9. centos6.5 ssh免密码登陆
  10. 正则和grep——再做正则就去死
  11. dubbo源码—service export
  12. p2p 打洞技术
  13. Crystal Reports报表使用 [一]
  14. 依赖注入demo
  15. Jquery获取当前页面中的复选框选中的内容
  16. Linux 小知识翻译 - 「Shell 脚本」
  17. 添加AD RMS role时,提示密码不能被验证The password could not be validated
  18. HDU4328 Cut the cake(动规:最大子矩形问题/悬线法)
  19. 【文文殿下】 [SDOI2013]保护出题人 题解
  20. centos下安装python3.6.2

热门文章

  1. HTML5语义化标签
  2. pygal and matplotlib(again)
  3. 升级xcode7的问题:使用shareSDK,坑的你两眼泪汪汪
  4. 一段可以使用的 hibernate获得对象-&gt;action存入List-&gt;jsp页面用&lt;s:iterator&gt;迭代的代码
  5. 部分LINUX系统由图形界面启动变更为命令行界面启动的方法
  6. jQuery框架分析第一章: 第一个匿名函数
  7. webrtc公开课
  8. rem和em,px的使用
  9. DAY1 linux 50条命令
  10. cocos2d界面渲染