标签:个数 整数 amp nbsp 多少 相同 pre iostream 题解
Description
Input
Output
Sample Input
2 4
Sample Output
12
Hint
首先很明显几个数要满足条件最大质因数要为1·····
然后就是分解质因数m,用容斥搞搞就出来了···
#include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<ctime> #include<cctype> #include<cstring> #include<string> #include<algorithm> #include<vector> #define ul unsigned long long using namespace std; vector<int>zhiyinzi; ul ans=0,n,m; inline ul ksm(ul a,ul b) { ul temp=1; while(b) { if(b%2==1) temp=temp*a; b=b/2; a=a*a; } return temp; } inline void dfs(int u,int tot,int f) { if(u==zhiyinzi.size()) { ul temp=m/tot; ans+=f*ksm(temp,n); return; } dfs(u+1,tot*zhiyinzi[u],-f); dfs(u+1,tot,f); } int main() { //freopen("a.in","r",stdin); cin>>n>>m; ul temp=m; for(int i=2;i*i<=temp;i++) { if(temp%i==0) { zhiyinzi.push_back(i); while(temp%i==0) temp/=i; } } if(temp!=1) zhiyinzi.push_back(temp); dfs(0,1,1); cout<<ans<<endl; return 0; }
标签:个数 整数 amp nbsp 多少 相同 pre iostream 题解
原文地址:http://www.cnblogs.com/AseanA/p/7634794.html