L3最后一道

wangweikun 2024-01-07 16:24:13

#include using namespace std; int n,m,t,sx,sy,fx,fy,cnt,sum=1,maxs; int vis[25][25]; int za[25][25]; int dir[2][2]={{0,1},{1,0}}; int a[1000010]; int b[1000010]; int c[1000010]; unsigned long long x=1; void dfs(int x){ if(x==n+1){ if(maxs<sum)maxs=sum; return; } for(int i=0;i<2;i++){ if(i)sum^=a[x]; dfs(x+1); } } void ispe(int n){ for(int i=2;i*i<=n;i++){ if(n%i==0){ if(a[i])c[i]++; else a[i]++; } while(n%i==0){ n/=i; } } if(n!=1){ if(a[n])c[n]++; else a[n]++; } } int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>b[i]; ispe(b[i]); } for(int i=1;i<=n;i++){ if(c[i])cout<<i<<" "; } }