C++ 分解质因数

2024-11-21 17:59:01
推荐回答(4个)
回答1:

分解质因数编程:
#include
using namespace std;
main(){
int n;
cin>>n;
int i;
int k=0;
for (i=2;i<=n;i++)
{
if (k==0&&n%i==0)
{
cout<<"n="< n/=i;//找到第一个质因数,按格式输出
}
while(n%i==0)
{
cout<<'*'< n/=i;
k=1;
}//分解到 n不再是i的倍数是为止
}
system("pause");
}

回答2:

#include
using namespace std;
void main()
{
int n;
cin >> n;
int i;
int k = 0;
for (i = 2; i <= n; i++)
{
if (k == 0 && n%i == 0)
{
cout << n << "=" << i;
n /= i;
k = 1;
}
while (n%i == 0)
{
cout <<"*" << i;
n /= i;
}
}
system("pause");
}
第一个回答是错的,这个完全正确,不谢

回答3:

这个,可以正确运行的。

#include
#include
using namespace std;

int main()
{
int max=0,j=2;
int i;
scanf("%d",&i);
if (i<=j)
{
printf("%d\n",i);
}
else
{
for (j=2;j<=i/2;j++)
{
if (i%j==0)
{
cout< j=0;
break;
}
}
if(j>0)printf("%d\n",i);
}
//system("pause");
return 0;
}

回答4:

2012年noip第一题?

#include
#include
using namespace std;
int main(void){
unsigned n;
cin>>n;
int m=sqrt(n);
for(int i=m;i>=2;i--)
if(n%i==0)
{
cout< return 0;
}
return 0;
}

BTW,iostream效率太低,应该直接用C的I/O函数