<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      CF1027G X-mouse in the Campus


      #include <bits/stdc++.h>
      #define int long long
      typedef long long ll;
      const int N=1000005;
      int m,a[N],f[N],p[N],n,cnt,x,ans;
      std::map<int,int> id;
      std::vector<int> v;
      void init(){
      	for (int i=1;i*i<=m;i++)//所有因數 
      		if (m%i==0){
      			a[++n]=i;
      		 	if (m/i!=i) a[++n]=m/i;
      		}
      	std::sort(a+1,a+n+1);
      	for (int i=1;i<=n;i++) id[a[i]]=i;
      	int x=m;
      	for (int i=2;i*i<=x;i++){
      		if (x%i) continue;
      		p[++cnt]=i;
      		while (x%i==0) x/=i;
      	}
      	if (x>1) p[++cnt]=x;
      	for (int i=1;i<=n;i++) f[i]=m/a[i];
      	for (int i=1;i<=cnt;i++)
      		for (int j=1;j<=n;j++)
      			if (a[j]%p[i]==0)
      				f[id[a[j]/p[i]]]-=f[j];
      }
      ll mul(ll x,ll y,ll mu){
         x%=mu;
         y%=mu;
         ll ans=(x*y-(ll)((double)x*y/mu+0.1)*mu)%mu;
         ans+=ans<0?mu:0;
         return ans;
      }
      int ksm(int x,int y,int mu){
      	int ans=1;
      	x=x%mu;
      	for (;y;y>>=1,x=mul(x,x,mu))
      		if (y&1) ans=mul(x,ans,mu);
      	return ans;
      }
      bool MR(int n){
      	if (n==2 || n==3 || n==5 || n==7) return 1;
      	if (n%2==0 || n%3==0 || n%5==0 || n%7==0) return 0;
      	int T=12;
      	int d=n-1,k=0;
      	while (d%2==0) d>>=1,k++;
      	while (T--){
      		int x=rand();
      		x=ksm(x,d,n);
      		if (x==0) continue;
      		for (int i=1;i<=k;i++){
      			int t=x;
      			x=mul(x,x,n);
      			if (x==1 && (t!=1 && t!=n-1)) return 0;
      		}
      		if (x!=1) return 0;
      	}
      	return 1;
      }
      ll gcd(ll x,ll y){
      	if (x%y==0) return y;
      	return gcd(y,x%y);
      }
      int PR(int n){
      	if (n%2==0) return 2;
      	if (n%3==0) return 3;
      	int x=rand(),y=x,c=12,step=0,t=1;
      	while (++step){
      		y=(mul(y,y,n)+c)%n;
      		if (x==y) return n;
      		ll g=gcd((y-x+n)%n,n);
      		if (g>1) return g;
      		if (step==t) x=y,t<<=1; 
      	}
      }
      void find(int n){
      	if (n==1) return;
      	if (MR(n)){
      		v.push_back(n);
      		return;
      	}
      	int d=n;
      	while (d==n || d==1) d=PR(n);
      	while (n%d==0) n/=d;
      	find(d);find(n); 
      }
      signed main(){
      	srand(time(0));
      	scanf("%lld%lld",&m,&x);
      	init();
      	for (int i=1;i<n;i++){
      		int t=m/a[i],c=f[id[a[i]]];
      		v.clear();
      		find(c);
      		std::sort(v.begin(),v.end());
      		std::unique(v.begin(),v.end());
      		for (auto j:v)
      			while (c%j==0 && ksm(x,c/j,t)==1) c/=j;	
      		ans=ans+f[i]/c;
      	}
      	printf("%lld\n",ans+1);
      }
      
      posted @ 2021-02-06 11:48  flyfeather  閱讀(89)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲国产精品无码观看久久| 日韩中文字幕高清有码| 日韩乱码卡一卡2卡三卡四| 日本一区二区不卡精品| 亚洲精品日韩久久精品| 无码视频伊人| 久久毛片少妇高潮| 免费无遮挡毛片中文字幕| 久久精品国产国产精品四凭| 亚洲一区二区精品偷拍| 日本极品少妇videossexhd| 国产精品一区二区三区污| 国产精品视频一区二区不卡| 中文有无人妻vs无码人妻激烈| 盘山县| 成人动漫在线观看| 亚洲精品日韩中文字幕| 内射视频福利在线观看| 精品久久久久久中文字幕202| 日日噜久久人妻一区二区| 国产偷倩视频| 91亚洲国产成人久久蜜臀| 国产L精品国产亚洲区在线观看| 99国产欧美另类久久久精品| 漂亮的保姆hd完整版免费韩国| 东京热大乱系列无码| 精品乱人伦一区二区三区| 一区二区亚洲精品国产精| 性色av无码久久一区二区三区| 十八禁国产精品一区二区| 亚洲 中文 欧美 日韩 在线| 成人精品自拍视频免费看| 最新日韩精品视频在线| 男人的天堂va在线无码| 亚洲加勒比久久88色综合| 永久免费无码成人网站| 国产老妇伦国产熟女老妇高清| 久久精品国产国产精品四凭| 国产午夜福利免费入口| 亚洲AV永久纯肉无码精品动漫| 中文字幕日韩一区二区不卡|