/*************************** 1. i 从1开始,只要是i的倍数,则都 +=i ; 2.循环结束后,所有数的因子和都算出了 3.标记这些因子和; # 2013-11-21 22:09:44 # Time: 15MS Memory: 2212K # Author: zyh ***************************/ #define N 500005 #include<stdio.h> bool f[1010]; int a[N]; void find() { for(int i=1;i<=N/2;i++) for(int j=i+i; j<=N; j+=i) //j是i的倍数,即i是j的因子 a[j] += i; for(int j=1;j<=N;j++) if(a[j]<=1000) f[a[j]] = 1; } int main() { int t,n,i,ans; find(); scanf("%d",&t); while(t--){ scanf("%d",&n); printf("%s\n",f[n]?"no":"yes"); } return 0; }