fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int MaxN=1e5;
  5. const int MaxM=1e5;
  6. vector<int> pd[MaxM+1];// PrimeDivisor
  7. bool tag[MaxM+1]={};
  8.  
  9. int main(){
  10. for(int m=1; 2*m<=MaxM; m++)
  11. pd[2*m].push_back(2);
  12. for(int m=3; m<=MaxM; m++){
  13. if( !pd[m].empty() ) // 只需要關注質因數
  14. continue;
  15. for(int p=1; m*p<=MaxM; p++)
  16. pd[m*p].push_back(m);
  17. }
  18. // main
  19. int N, M, v;
  20. cin>>N>>M;
  21. for(int n=0; n<N; n++){
  22. cin>>v;
  23. for(int prime: pd[v]){
  24. if( tag[prime] )
  25. continue;
  26. for(int p=1; prime*p<=M; p++)
  27. tag[ prime*p ]=1;
  28. }
  29. }
  30. int ans=0;
  31. for(int m=1; m<=M; m++)
  32. ans+= tag[m]==0;
  33. cout<<ans<<"\n";
  34. for(int m=1; m<=M; m++)
  35. if(tag[m]==0)
  36. cout<<m<<"\n";
  37. }
Success #stdin #stdout 0.01s 5504KB
stdin
Standard input is empty
stdout
9