fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int prime[500]; // 0 means prime
  5.  
  6. template<int n> void fillMultiple(int i)
  7. {
  8. prime[n*i]=1;
  9. n*i<500?fillMultiple<n>(i+1):fillMultiple<499>(i);
  10. }
  11.  
  12. template<> void fillMultiple<499>(int i)
  13. {
  14. }
  15.  
  16. template<int n> void generatePrime()
  17. {
  18. prime[n]==0?fillMultiple<n>(2):generatePrime<n+1>();
  19. generatePrime<n+1>();
  20. }
  21.  
  22. template<> void generatePrime<499>()
  23. {
  24. }
  25.  
  26. int main()
  27. {
  28. prime[0]=prime[1]=1;
  29. generatePrime<2>();
  30.  
  31. for(int i=0;i<500;i++)
  32. if(0==prime[i])
  33. cout<<i<<endl;
  34.  
  35. return 0;
  36. }
Runtime error #stdin #stdout 0.01s 2708KB
stdin
Standard input is empty
stdout
Standard output is empty