CF542D
来源:互联网 发布:网络运营 专业技能 编辑:程序博客网 时间:2024/04/27 22:59
Description:
Solution:
Code:
#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring>#include <algorithm>#include <iostream>#include <vector>#include <map>using namespace std;vector <long long> G[100010];int prime[100010]={0};int pp=0;int hash[1000010]={0};long long N=0;long long hehe[10010]={0};int hehep=0;int F[8000]={0};map <long long,int> FF;void P_prime(){ for(int i=2;i<=1000000;i++) { if(hash[i]==0) prime[++pp]=i; for(int j=1;j<=pp && i*prime[j]<=1000000;j++) { hash[i*prime[j]]=1; if(i%prime[j]==0) break; } } return;}void check(int k){ long long gg=prime[k]; for(;gg<=1000000;gg*=prime[k]) { if(N%((int)gg+1)==0) G[k].push_back((int)gg+1); } return;}bool isprime(long long k){ for(int i=1;i<=pp;i++) if(k%prime[i]==0) return false; return true;}void isprimepower(long long k){ long long ff=k; for(int i=1;i<=pp;i++) if(k%prime[i]==0) { for(;ff%prime[i]==0 && ff>1;ff/=prime[i]); if(ff==1) G[i].push_back(k+1); return; } return;}int main(){ cin>>N; P_prime(); for(int i=1;i<=pp;i++) check(i); hehe[++hehep]=1; for(int i=2;(long long)i*i<=N;i++) { if(N%i==0) { hehe[++hehep]=i; hehe[++hehep]=N/i; } } if(N!=1) hehe[++hehep]=N; sort(hehe+1,hehe+hehep+1); for(int i=1;i<=hehep;i++) { FF[hehe[i]]=i; if(hehe[i]-1>1000000) isprimepower(hehe[i]-1); } F[1]=1; for(int i=1;i<=pp;i++) { for(int j=hehep;j>=1;j--) { int Si=G[i].size(); for(int p=0;p<Si;p++) { map <long long,int>::iterator it; if(N%(hehe[j]*G[i][p])!=0) continue; it=FF.find(hehe[j]*G[i][p]); if(it!=FF.end()) F[it->second]+=F[j]; } } } for(int i=1;i<=hehep;i++) { if(hehe[i]-1<=1000000) continue; if(isprime(hehe[i]-1)==false) continue; for(int j=hehep;j>=1;j--) { map <long long,int>::iterator it; it=FF.find(hehe[j]*hehe[i]); if(it!=FF.end()) F[it->second]+=F[j]; } } printf("%d",F[hehep]); return 0;}
0 0
- CF542D
- 【bzoj4152】【AMPPZ2014】【The Captain】【最短路】
- 【黑马程序员】栈内存与堆内存
- CheungSSH运维自动化软件 批量管理上千台服务器 堡垒机
- Unity3D 提高视频movie视频播放的质量
- 在使用startActivityForResult时需要注意的问题
- CF542D
- hdoj 2529 Shot 【物理题】&&【物理题好无力】
- 时间和日期选择器DatePicker和TimePicker的使用
- 手机当前屏幕内容分享核心代码
- Volley添加Http Header
- 两个C++编译异常及解决方法-does not name a type和field `XX' has incomplete type
- 同余问题(2)逆元,孙子定理
- 黑马程序员——Java语言基础
- 内联函数inline