HDU 4135(Co-prime-[1,m]内与n互质的数的个数)
来源:互联网 发布:美工设计网站大全 编辑:程序博客网 时间:2024/05/17 23:02
[1,m]内与n互质的数的个数
n<=10^9 ,m<=10^18
如果m改为n,就是欧拉函数
现在由于n很小,我们考虑最原始的容斥
令f(A) 表示 [1,m]中 A的倍数 的个数 ,其中A是n的因子
答案= 总数 - 有一个质因子的倍数 + 有两个质因子的倍数 …
#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<functional>#include<iostream>#include<cmath>#include<cctype>#include<ctime>#include<vector> #include<iomanip> using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define Rep(i,n) for(int i=0;i<n;i++)#define ForD(i,n) for(int i=n;i;i--)#define RepD(i,n) for(int i=n;i>=0;i--)#define Forp(x) for(int p=pre[x];p;p=next[p])#define Forpiter(x) for(int &p=iter[x];p;p=next[p]) #define Lson (x<<1)#define Rson ((x<<1)+1)#define MEM(a) memset(a,0,sizeof(a));#define MEMI(a) memset(a,127,sizeof(a));#define MEMi(a) memset(a,128,sizeof(a));#define INF (2139062143)#define F (100000007)#define pb push_back#define mp make_pair#define fi first#define se secondtypedef long long ll;ll mul(ll a,ll b){return (a*b)%F;}ll add(ll a,ll b){return (a+b)%F;}ll sub(ll a,ll b){return (a-b+llabs(a-b)/F*F+F)%F;}void upd(ll &a,ll b){a=(a%F+b%F)%F;}ll a,b,n;vector<ll> D;ll f[1000],flag[1000];ll calc(ll m) { ll ans=0; int sz=D.size(); f[0]=1;flag[0]=1; for(int b=0;b<(1<<sz);++b) { for(int j=0;j<sz;j++) { if ( ! (b&(1<<j)) ) { f[b|(1<<j)] = f[b]*D[j]; flag[b|(1<<j)]=-flag[b]; } } ans+=flag[b]*(m/f[b]); } return ans;} int main(){// freopen("hdu4135.in","r",stdin);// freopen(".out","w",stdout); int T;cin>>T; For(kcase,T) { cin>>a>>b>>n; D.clear(); for(int d=2;d*d<=n;d++) { if (n%d==0) { D.pb(d); while (n%d==0) n/=d; } } if (n>1) D.pb(n); cout<<"Case #"<<kcase<<": "<<calc(b)-calc(a-1)<<endl; } return 0;}
0 0
- HDU 4135(Co-prime-[1,m]内与n互质的数的个数)
- HDU 4135:Co-prime 容斥原理求(1,m)中与n互质的数的个数
- HDU 4135 Co-prime 区间内与n互质的个数 容斥(入门
- HDU 4135-Co-prime(容斥求区间内与N互质的个数(队列||位运算))
- 【容斥原理-求区间内与n互质的数】HDOJ Co-prime 4135
- hdu 4135 容斥原理 求(1,m)区间与n互质的数的个数.
- 数学 ( 容斥原理&&求区间内互质数的个数)——Co-prime ( HDU 4135 )
- 求1~n中与m互质的数的个数
- hdu 1695 hdu 4135 容斥原理求1-n 区间内与r互质的个数
- hdu 2588 搞了好久的数论题 1到n的数与n的公约数大于m的数的个数
- 求1~n中与m互质的数的个数(m>n) 附hdu1695题解(欧拉函数+容斥原理)
- BZoj 2186 [Sdoi2008]沙拉公主的困惑 (1~N!中与M!互质的数的个数)
- BZOJ2186]沙拉公主的困惑(求1-N!中与M!互质的数的个数)
- 求1到N个数中包含质因子m的数的个数
- hdu4235 Co-prime(求互质数的个数)
- n个数,数到m的出来。
- 容斥经典:求1-m中与n互素的数的个数(hdu4153)
- 求n个数选m个数的组合数
- 多重表
- checkbox属性checked="checked"已有,但却不显示打勾的解决办法
- wget
- 多线程下载
- LeetCode--Missing Number
- HDU 4135(Co-prime-[1,m]内与n互质的数的个数)
- 云数据中心网络技术——互动出版网
- css3动作
- ionic如何下拉获得更多数据(刷新)
- 第八周项目3 顺序串算法(1)
- 线性表
- hadoop 学习路线
- ios message sent to deallocated instance 重复release 内存问题
- How much GPU memory do iPhones and iPads have?