#include "iostream"
#include "cmath"
using namespace std;
bool cmpsu(int a);
int outin(int a,int b[]);
int main()
{
int m,s,count,*store;
cin>>m;
s=int(sqrt(m));
store=new int[s];
bool check;
cout<<"请输入一个数,判断是否为素数"<<endl;
check=cmpsu(m);
if(check==true)
cout<<m<<"是素数"<<endl;
else
{ cout<<m<<"不是素数:"<<endl;
count=outin(m,store);
cout<<"输出其因子:"<<endl;
for(int i=0;i<count;i++)
cout<<store[i]<<" ";
}
cout<<endl<<"程序结束"<<endl;
return 0;
}
bool cmpsu(int a)
{
int i,key=0;
bool t;
for(i=2;i<=int(sqrt(a));i++)
if(a%i==0)
{key=1;
}
if(key==0)
t=true;
else t=false;
return t;
}
int outin(int a,int b[])
{
int i,j=0;
for(i=2;i<a;i++)
if(a%i==0)
{ b[j]=i;
j++;
}
return j;
}
应该没有问题的