题解 | 小红和小紫的取素因子游戏
小红和小紫的取素因子游戏
https://www.nowcoder.com/practice/6146f391a69547c4804fe8d0330f1745
#include<iostream> #include<algorithm> #include<cstring> #include<unordered_map> using namespace std; #define int long long #define ios ios::sync_with_stdio(false),cin.tie(0),cout.tie(0) #define MAXN 100010 int primes[MAXN],cnt; bool st[MAXN]; void gprimes(int n){ for(int i=2;i<=n;i++){ if(!st[i])primes[cnt++]=i; for(int j=0;primes[j]*i<=n;j++){ st[primes[j]*i]=1; if(i%primes[j]==0)break; } } } bool solve(){ int n; cin>>n; int ans=0; for(int i=0;i<cnt;i++){ while(n%primes[i]==0){ ans++; n/=primes[i]; } if(n==1)break; } if(n>1)ans++; if(ans&1)return true; else return false; } signed main(){ ios; int t; cin>>t; gprimes(100000); while(t--) if(solve())cout<<"kou"<<endl; else cout<<"yukari"<<endl; return 0; }