http://lightoj.com/volume_showproblem.php?problem=1341

题意:
给你矩形的面积(矩形的边长都是正整数),让你求最小的边大于等于b的矩形的个数。

思路:
根据唯一分解定理,把X写成若干素数相乘的形式,则X的正因数的个数为:(1+a1)(1+a2)(1+a3)...(1+an)。(ai为指数)

因为这道题目是求矩形,所以知道一个正因数后,另一个正因数也就确定了,所以每组正因数重复计算了两遍,需要除以2。

最后减去小于b的因数。

 #include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector>
#include<queue>
#include<cmath>
#include<map>
#include<stack>
using namespace std; const int maxn=1e6+; int n;
int cnt=;
int primes[maxn];
int vis[maxn]; void get_primes()
{
int m=sqrt(maxn+0.5);
for(int i=;i<=m;i++)
{
if(!vis[i])
{
for(int j=i*i;j<=maxn;j+=i)
vis[j]=;
}
}
for(int i=;i<=maxn;i++)
if(!vis[i]) primes[cnt++]=i;
} int main()
{
//freopen("D:\\input.txt","r",stdin);
int T;
int kase=;
get_primes();
scanf("%d",&T);
while(T--)
{
long long a,b;
scanf("%lld%lld",&a,&b);
long long x=a;
if(a<=b*b) {printf("Case %d: 0\n",++kase);continue;}
long long ans=;
for(int i=;i<cnt&&primes[i]*primes[i]<=a;i++)
{
if(a%primes[i]==)
{
long long num=;
while(a%primes[i]==)
{
num++;
a/=primes[i];
}
ans*=(+num);
}
}
if(a>) ans*=;
ans/=;
for(long long i=;i<b;i++)
if(x%i==) ans--;
printf("Case %d: %lld\n",++kase,ans);
}
return ;
}

最新文章

  1. 在虚拟机中安装CentOS
  2. java 部分隐藏字段
  3. Node.js入门学习笔记(二)
  4. No Entity Framework provider found for the ADO.NET provider with invariant
  5. 使用 Daynamic 动态添加属性
  6. vim 查找时忽略大小写
  7. cocos2d-x之Vector与map
  8. Android中的sharedUserId属性详解
  9. css笔记18:盒子模型案例分析示范
  10. Android选项卡TabHost方式实现
  11. Merge Into For Update Example
  12. Json字符串与字典互转
  13. UVA 10668 - Expanding Rods(数学+二分)
  14. global中拦截404错误的实现方法
  15. java 参数传值
  16. linux 下启动程序的时候会显示坏的解释器,或者没有那个文件
  17. LeetCode算法题-Island Perimeter(Java实现)
  18. class文件魔数CAFEBABE的由来
  19. October 22nd, 2017 Week 43rd Sunday
  20. Codeforces 913C - Party Lemonade

热门文章

  1. 基于Django的乐观锁与悲观锁解决订单并发问题的一点浅见
  2. git mv与直接mv的区别
  3. rabbitMQ基本概念
  4. AngularJS filter:search 是如何匹配的 ng-repeat filter:search ,filter:{$:search},只取repeat的item的value 不含label
  5. C# 将 HTML 转换为图片或 PDF
  6. Bridge Serial-Ports over network
  7. spark[源码]-sparkContext详解[一]
  8. tomcat高并发配置调优
  9. [CLR via C#读后整理]-1.CLR的执行模型
  10. mouseover 有一个多次触发的问题