这题是真GOU了,改bug改到自闭了。
‘
同样都是预处理,人家加了个素数筛就能过,我没加就疯狂W,W到自闭,其实知道题简单的一批,只需要预处理一下,从n分解到1需要多少次,然后存到数组里就行了,真的是W吐了
#include <bits/stdc++.h> typedef long long ll; using namespace std; const int mod=1e9+7; const int N = 1e6 + 10; bool st[N]; int prime[N]; int cnt; void get_primes() { for(int i = 2; i <= 1000001; i++) { if(!st[i]) prime[cnt ++] = i; for(int j = 0; prime[j] <= 1000001 / i; j ++) { st[prime[j] * i] = true; if(i % prime[j] == 0) break; } } } inline ll mi(ll a,ll b) { ll ans=1; a%=mod; while (b) { if (b&1) ans=ans*a%mod; b>>=1; a=a*a%mod; } return ans; } int A[1000005]= {0,1,1}; int main() { get_primes(); for(int i = 3; i <= 1000000; ++i) { if(st[i]==0) A[i]=1; else { for(int j=2; j<=i; j++) { if(i%j==0) { A[i]=i/j; break; } } } } int t,n,c; scanf("%d",&t); while(t--) { int k=0; scanf("%d%d",&n,&c); while(n!=1) { k++; n=A[n]; } printf("%lldn",mi(c,k)); } return 0; }
View Code
原文链接: https://www.cnblogs.com/sszywq/p/13352494.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/368780
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!