[jzoj2538]【NOIP2009TG】Hankson 的趣味题
来源:互联网 发布:江苏大数据产业园 编辑:程序博客网 时间:2024/06/15 04:10
Description
Solution
比较简单的数论
基本思路:考虑 x 的每个质因数可以取多少个 运用乘法原理即可
显然的 P | x 的充要条件是 P | b1
那么 对于一个质数 P
设 A1 表示
感受一下
当
同样的 对于
注意每一个 b1 的质因数都要被考虑
Code
#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define fo(i,x,y) for (int i=(x);i<=(y);++i)#define fd(i,x,y) for (int i=(x);i>=(y);--i)#define oo 2139062143using namespace std;const int NUM=2000020000,SQT=50500;int T,a0,a1,b0,b1;int pri[SQT],bz[SQT];void gtpri(){ bz[1]=1; fo(i,2,50000) { if(!bz[i]) pri[++pri[0]]=i; fo(j,1,pri[0]) { if(i*pri[j]>=50000)break; bz[i*pri[j]]=1; if(!(i%pri[j]))break; } }}int calc(int x,int y){ int rt=0; while(!(y%x)) y/=x,++rt; return (rt);}int work(int P){ int c0=calc(P,a0),c1=calc(P,a1),d0=calc(P,b0),d1=calc(P,b1); int tl=0,tr=oo; if(c0<c1||d0>d1) return 0; if(c0==c1) tl=c1; if(d0==d1) tr=d1; if(c0>c1) { if(!(c1>=tl&&c1<=tr)) return 0; else tl=tr=c1; } if(d0<d1) { if(!(d1>=tl&&d1<=tr)) return 0; else tl=tr=d1; } return(tr-tl+1);}int main(){ gtpri(); scanf("%d",&T); while(T--) { scanf("%d%d%d%d",&a0,&a1,&b0,&b1); long long ans=1; fo(i,1,pri[0]) if(b1%pri[i]==0) { ans*=work(pri[i]); while(b1%pri[i]==0) b1/=pri[i]; if(!ans||(pri[i]*pri[i]>=b1))break; } if(b1!=1)ans*=work(b1); printf("%lld\n",ans); } return 0;}
阅读全文
0 0
- [jzoj2538]【NOIP2009TG】Hankson 的趣味题
- 初中OJ1835. 【NOIP2009TG】Hankson 的趣味题
- NOIp2009TG T2/Luogu P1072 Hankson的趣味题 解题报告
- Hankson的趣味题
- Hankson的趣味题
- hankson的趣味题
- NOIP2009 Hankson的趣味题
- Codevs1172 Hankson的趣味题
- NOIP2009 Hankson 的趣味题
- NOIP2009 Hankson的趣味题
- 【noip】HankSon的趣味题
- NOIp2009 Hankson的趣味题
- 1172 Hankson 的趣味题
- 【Noip2009】hankson的趣味题
- P1072 Hankson 的趣味题
- NOIP-2009-B2 HANKSON 的趣味题
- Hankson的趣味题[NOIP2009]解题报告
- 【NOIP2009】洛谷1072 Hankson的趣味题
- unity 3d EasyTouch(一)
- cifar数据集训练
- MSP430串口接收程序(使用中断)
- java对一个无序列表进行分组
- input监听-取值-发送ajax问题-
- [jzoj2538]【NOIP2009TG】Hankson 的趣味题
- Hibernate中多对多的javabean文件的编写和映射文件的配置
- java基础知识(二)jvm类加载
- 下载编译chromium
- IOS系统监听返回按钮处理方式
- canal部署与实例运行
- 更改mnist测试数据数量
- 多个文本里内容重复检测的小工具开发
- ConcurrentModificationExeception :并发修改异常产生原因及解决方法