利用栈和类实现求一个数的所有约数

来源:互联网 发布:万网哪些域名可以备案 编辑:程序博客网 时间:2024/05/19 23:17
#include<iostream>#include<cmath>using namespace std;class StackOfIntergers{private:int element[100];int size;public:    StackOfIntergers(){size=0;}bool empty() const{return (size==0);}int peek() const{        return element[size-1];}void push(int value){element[size++]=value;}    int pop(){return element[--size];}int getSize() const{return size;}};bool prime(int n)  //判断一个数是否为素数{for(int i=2;i<=sqrt(n);i++)if(n/i==0)break;if(i>sqrt(n))return true;else return false;}int*primearray(int num)  //将小于一个数的所有素数存储在一个数组中{int *p;    p=new int[num];    for(int i=2,j=0;i<num;i++)if(prime(i))p[j++]=i;return p;}int main(){StackOfIntergers stack;int number,r,i=0,*q;cout <<"input a number:";cin >> number;q=primearray(number);while(number!=1){if(number%q[i])i++;else{stack.push(q[i]);number/=q[i];i=0;}}while(!stack.empty())cout <<stack.pop()<<endl;return 0;}


原创粉丝点击