/*
HDU5514 Frogs
http://acm.hdu.edu.cn/showproblem.php?pid=5514
容斥原理
*
*
*/
#include <cstdio>
#include <cmath>
#include <algorithm>
//#define test
using namespace std;
const long long Nmax=1e5;
long long n,m,a[Nmax];
long long book[Nmax];
long long p[Nmax];
int cnt;
long long num[Nmax];
long long gcd(long long a,long long b)
{
if(b==0LL)
return a;
return gcd(b,a%b);
} int main()
{
long long t;
#ifdef test
while()
{
long long a,b;
scanf("%lld%lld",&a,&b);
printf("%lld\n",gcd(a,b));
}
#endif
scanf("%lld",&t);
for(long long ttt=;ttt<=t;ttt++)
{
scanf("%lld%lld",&n,&m);
int flag=;
for(long long i=;i<=n;i++)
{
scanf("%lld",&a[i]);
a[i]=gcd(a[i],m);
if(a[i]==)
flag=;
}
if(flag)
{
long long ans=(m-1LL)*m/2LL;
printf("Case #%lld: ",ttt);
printf("%lld\n",ans);
continue;
}
long long ans=0LL;
cnt=;
for(int i=;i*i<=m;i++)
{
if(m%i)
continue;
p[++cnt]=i;
if(i*i!=m)
p[++cnt]=m/i;
}
sort(p+,p++cnt);
for(int i=;i<=cnt;i++)
book[i]=num[i]=;
for(int i=;i<=n;i++)
{
for(int j=;j<=cnt;j++)
if(p[j]%a[i]==)
book[j]=;
}
for(int i=;i<=cnt;i++)
{
if(book[i]!=num[i])
{
long long tmp=m/p[i];
ans+=tmp*(tmp-1LL)/2LL*p[i]*(book[i]-num[i]);
tmp=book[i]-num[i];
for(int j=i+;j<=cnt;j++)
if(p[j]%p[i]==)
num[j]+=tmp;
}
} printf("Case #%lld: ",ttt);
printf("%lld\n",ans);
}
return ;
}

最新文章

  1. quartz定时+log4net日志+exchangeservice发邮件
  2. PHP+MYSQL网站SQL Injection攻防
  3. Xcode找不到模拟器出现&quot;My Mac&quot;
  4. Jquery超简单遮罩层实现代码
  5. SharePoint 2010中重置windows 活动目录(AD)域用户密码的WebPart(免费下载)
  6. UVa 213,World Finals 1991,信息解码
  7. javascript console
  8. 递推DP HDOJ 5328 Problem Killer
  9. PHP Apache Access Log 分析工具 拆分字段成CSV文件并插入Mysql数据库分析
  10. 剑指offier第三题
  11. 为什么要用on()而不直接使用click
  12. 复制virtualenv环境到其他服务器环境配置的方法
  13. WPF 数字小键盘Themes
  14. HBase MVCC 代码阅读(一)
  15. 01迷宫 洛谷 p1141
  16. windows下实现linux的远程访问以及linux上文件的上传和下载
  17. Shell命令-文件及内容处理之cat、tac
  18. SPI有关CPOL和CPHA的时序图
  19. 在TQ2440开发板上ping 127.0.0.1不通
  20. 学习使用 ARM 的 math 库,据说 速度比C标准库 自带的 快 几十倍 到几百倍

热门文章

  1. 具体解释linux文件处理的的经常使用命令
  2. 曲线控件我一直用codeproject上的那几个(C++ 100款开源界面库)
  3. 逻辑运算0==x和x==0具体解释
  4. 通用扩展函数之TypeParse
  5. MongoDB实现数组中重复数据删除
  6. 爬虫之 Requests库的基本使用
  7. BZOJ 1507 splay
  8. c语言return与exit的区别
  9. 杭电2061WA
  10. 安装mysql-python的遇到的问题