问题描述
解决方案
不知道你的编译器是什么,如果只是输出格式不对,就加一句:
#include"iostream"
using namespace std;
#include<math.h>
void main()
{
int x,i;
cout<<"输入整数:";
cin>>x;
cout<<x<<"=";//修改
while(x>=1)
{
int j=(int)sqrt((float)x);//修改
for(i=2;i<=j;i++){
if(x%i==0){
cout<<i<<"*";
x=x/i;break;
}
}
if(i>j){
cout<<x;break;
}
}
cout<<endl;
}
解决方案二:
以后贴代码,不要贴图
看不清你的程序
参考:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int n,i;
//scanf("%d",&n);
n=126;
printf("%d=",n);
while(n%2==0){
printf("%d*",2);
n/=2;
}
for(i=3;i<=sqrt(n);i+=2)
{
if(n%i==0)
{
n/=i;
printf("%d*",i);
i-=2;
}
}
printf("%dn",n);
return 0;
}
http://codepad.org/u3PLBkSg
在线测试
126=2*3*3*7
解决方案三:
#include"iostream"
using namespace std;
#include<math.h>
void main()
{
int x,i;
cout<<"输入整数: ";
cin>>x;
while(x>=1)
{
int j=(int)sqrt((float)x);//修改
for(i=2;i<=j;i++){
if(x%i==0){
cout<<i<<"*";
x=x/i;break;
}
}
if(i>j){
cout<<x;break;
}
}
cout<<endl;
}
时间: 2024-08-31 09:44:20