steve 学完了快速幂,现在会他快速的计算:(ij)%d , Alex 作为一个数学大师,给了 steve 一个问题:已知
i∈[1,n],j∈[1,m] ,计算满足 (ij)%d=0 的 (i,j) 的对数。

输入格式

T组输入,对于每一组输入三个数n,m,d。
(1≤T≤1000,1≤n,m,d≤109)。

输出格式

对于每组输入,输出答案,每个答案占一行。

样例

input
4
3 10 7
3 5 3
10 30 6
100 100 8
output
0
5
30
4937
不太懂,,先记下来再说
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll qpow(ll a,ll b){
ll ans=;
while(b){
if(b&) ans=(ans*a);
a=(a*a);
b>>=;
}
return ans;
}
int main(){
int T;scanf("%d",&T);
while(T--){
ll n,m,d;
scanf("%lld %lld %lld",&n,&m,&d);
vector<pair<ll,ll> > prs;
vector<pair<ll,ll> >::iterator it;
for(ll i=;i*i<=d;i++){
if(d%i==){
long long cnt=;
while(d%i==){
d/=i;cnt++;
}
prs.push_back({i,cnt});
}
}
ll res=;
if(d!=) prs.push_back({d,});
for(ll j=;j<=min(m,1LL*);j++){
ll g=;
// for(auto v:prs)
for(it=prs.begin();it!=prs.end();it++)
{
g*=qpow( it->first,( it->second+j-)/j);
}
if(j==) res+=(m-)*(n/g);
else res+=n/g;
}
printf("%lld\n",res);
}
return ;
}

最新文章

  1. java 日期转时间戳,时间戳转为日期
  2. npm install socket.io遇到的问题
  3. .NET中类(class)与结构(struct)
  4. 生成bat文件及sh文件
  5. C#读取网络流,读取网络上的js文件
  6. 行转列一定要sum
  7. DOM下的节点属性和操作小结
  8. iOS navigationbar 透明
  9. .Net连接到SAP【转载】
  10. MAX函数和GROUP BY 语句一起使用的一个误区
  11. Java学习日记-6 继承
  12. LPCTSTR
  13. 36.QT-解决无边框界面拖动卡屏问题(附带源码)
  14. HDU 3861 The King’s Problem 最小路径覆盖(强连通分量缩点+二分图最大匹配)
  15. nginx 实现所有的子域名301跳转到另外一个域名的对应子域名
  16. intellij idea 程序包不可见问题
  17. 手机号读取城市数据库2018年3月excel版
  18. linux中根据名称kill进程
  19. open-falcon ---客户机agent操作
  20. ThinkCMF项目部署出现无法加载数据库驱动解决方案

热门文章

  1. wr720n v4 折腾笔记(二):刷入不死Uboot
  2. Nginx | CentOS 8 安装Nginx详细教程
  3. 初识js(第一篇)
  4. Java 异常处理与输入输出
  5. Redis系列(四):Redis的复制机制(主从复制)
  6. Codeforces Round #623 (Div. 2, based on VK Cup 2019-2020 - Elimination Round, Engine)
  7. Chrome截图截满滑动栏,QQ截长屏,录屏
  8. 如何用git将本地项目push到Github
  9. CTF中常用的php伪协议利用
  10. Codeforces - Watermelon