链接
某个数x属于[1,n],至少询问哪些数y“x是否是y的倍数”才能判断x。
找出所有质因数和质因数的幂即可。
#include<cstdio> #include<algorithm> #define N 1005 using namespace std; int n,pr[N],ans[N],cnt; int main(){ scanf("%d",&n); for(int i=2;i<=n;i++) if(!pr[i]) for(int j=i*2;j<=n;j+=i) pr[j]++; for(int i=2;i<=n;i++) if(pr[i]<2) ans[cnt++]=i; printf("%d\n",cnt); for(int i=0;i<cnt;i++) printf("%d ",ans[i]); }