fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef long long int ll;
  4.  
  5. const ll mx=1000000;
  6. vector<ll> spf(mx+1);
  7.  
  8. void cspf() {
  9. for (ll x=2;x<=mx;x++) {
  10. spf[x] = x;
  11. }
  12. for (ll x=2;x*x<=mx;x++) {
  13. if (spf[x]==x) {
  14.  
  15. for (ll y=x*x;y<=mx;y+=x) {
  16. if (spf[y]==y) {
  17.  
  18. spf[y]=x;
  19. }
  20.  
  21.  
  22. }
  23. }
  24. }
  25. }
  26.  
  27. int main() {
  28. cspf();
  29. for (ll x=2; x<=20; x++) {
  30. cout<<"smallest prime factor"<<x<<" :"<<spf[x]<<"\n";
  31. }
  32. return 0;
  33. }
Success #stdin #stdout 0.01s 11084KB
stdin
Standard input is empty
stdout
smallest prime factor2 :2
smallest prime factor3 :3
smallest prime factor4 :2
smallest prime factor5 :5
smallest prime factor6 :2
smallest prime factor7 :7
smallest prime factor8 :2
smallest prime factor9 :3
smallest prime factor10 :2
smallest prime factor11 :11
smallest prime factor12 :2
smallest prime factor13 :13
smallest prime factor14 :2
smallest prime factor15 :3
smallest prime factor16 :2
smallest prime factor17 :17
smallest prime factor18 :2
smallest prime factor19 :19
smallest prime factor20 :2