c++编程实现:从键盘输入一个正整数。如果它是素数,则输出此数,否则输出该数的所有因子(1和它本身除外

如题所述

第1个回答  2009-11-13
好了~
#include<cmath>
#include<iostream>
using namespace std;

int main(){
int num;//要输入的整数
int i,j,t;
cin>>num;
t=(int)sqrt(num*1.0);
j=0;
for(i=2;i<=t;i++){
if(num%i==0){
cout<<i<<' ';
num/=i;
i=1;
j=1;
}
}
if(j) cout<<endl;
else cout<<num;
return 0;
}本回答被网友采纳
第2个回答  2009-11-13
#include<iostream.h>
#include<math.h>
int zhishu(int m)
{
int i,b;
for(i=2;i<=sqrt(m);i++)
if(m%i==0)
break;
if(i>sqrt(m))
return m;}
int main()
{
int n,r,k;
cin>>n;
r=zhishu(n);
if(r==n)
cout<<n<<endl;
else
for(k=2;k<n;k++)
{if(n%k==0)
cout<<k<<'\t';}

system("PAUSE");
} 运行没问题
第3个回答  2009-11-13
#include <iostream>
using namespace std;
#include <math.h>
int Isprime(int n)
{
int i=2;
while(i<sqrt(n))
{
if(!(n%i))
break;
else i++;
}
if (i>sqrt(n)||n==1)
{
return 1;
}
else
{
return 0;
}
}
void main()
{
int date,i=2;
cout<<"Input integer: ";
cin>>date;
if(Isprime(date))
{
cout<<date<<endl;
}
else
{
while(i<date)
{
if (!(date%i))
{
cout<<i<<"\t";
}
i++;
}
}
}
第4个回答  2009-11-13
建议楼主自己做
相似回答