莫比乌斯反演1-x1-y,中的质数GCD(a,b)
2015-09-16 20:36
204 查看
题意:给定两个数
和
,其中
,
,求
为质数的
有多少对?其中
和
的范
围是
。
和
,其中
,
,求
为质数的
有多少对?其中
和
的范
围是
。
#include <iostream> #include <string.h> #include <stdio.h> using namespace std; typedef long long LL; const int N = 10000005; bool vis ; int p ; int cnt; int g ,u ,sum ; void Init() { memset(vis,0,sizeof(vis)); u[1] = 1; cnt = 0; for(int i=2;i<N;i++) { if(!vis[i]) { p[cnt++] = i; u[i] = -1; g[i] = 1; } for(int j=0;j<cnt&&i*p[j]<N;j++) { vis[i*p[j]] = 1; if(i%p[j]) { u[i*p[j]] = -u[i]; g[i*p[j]] = u[i] - g[i]; } else { u[i*p[j]] = 0; g[i*p[j]] = u[i]; break; } } } sum[0] = 0; for(int i=1;i<N;i++) sum[i] = sum[i-1] + g[i]; } int main() { Init(); int T; scanf("%d",&T); while(T--) { LL n,m; cin>>n>>m; if(n > m) swap(n,m); LL ans = 0; for(int i=1,last;i<=n;i=last+1) { last = min(n/(n/i),m/(m/i)); ans += (n/i)*(m/i)*(sum[last]-sum[i-1]); } cout<<ans<<endl; } return 0; }
相关文章推荐
- 测试用例设计
- 二叉树的创建算法
- JavaScript调试工具
- SQL Server ->> DISABLE索引后插入更新数据再REBUILD索引 和 保留索引直接插入更新数据的性能差异
- Android屏幕适配及DisplayMetrics解析
- 设计模式 命令模式 之 管理智能家电
- UITabBarController
- linux openssl漏洞
- Whitesides' Group: Writing a Paper(译)
- 程序员必须要熟知的英文单词--更新中
- 各种编程语言的深度学习库整理
- 字符串查找算法Sunday的实现
- 插件管理器的安装之XCode6.1
- 【Android笔记】多线程与 UI 交互的方法
- C#中return、break、continue的用法
- HDOJ 5384 Danganronpa
- 日报
- 自己总结第一弹
- C语言实现Huffman树并计算带权路径长度
- 李白喝酒问题