#include <iostream>
#include <vector>
using namespace std;
class StackOfInteger{
public:
StackOfInteger();
~StackOfInteger();
void push(int val); //添加素数
void reverseOrderPrintStack() const; //逆序打印素数
private:
vector<int> vec; //保存素数
};
StackOfInteger::StackOfInteger(){
//nothing
}
StackOfInteger::~StackOfInteger(){
//nothing
}
void StackOfInteger::push(int val){
vec.push_back(val);
}
void StackOfInteger::reverseOrderPrintStack() const{
for(auto it = vec.end() - 1; it != vec.begin() - 1; it--)
cout << *it << " ";
cout << endl;
}
int main(){
StackOfInteger stack;
const int NUMBER_LIMIT = 120;
int number = 2;
while(number <= NUMBER_LIMIT){
bool isPrime = true;
for(int divisor = 2; divisor <= number / 2; ++divisor){
if(number % divisor == 0){
isPrime = false;
break;
}
}
if(isPrime)
stack.push(number);
number++;
}
//print primer number
stack.reverseOrderPrintStack();
return 0;
}
本答案偷懒用了vector,有点超纲了。。。。