编写一个函数,对输入的整数k输出它的全部素数因子。……格式为126=2*3*3*7

图片

不知道你的编译器是什么,如果只是输出格式不对,就加一句:

 #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"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;
}

以后贴代码,不要贴图

看不清你的程序

参考:

 #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("%d\n",n);  

        return 0;  
}  

http://codepad.org/u3PLBkSg
在线测试
126=2*3*3*7

#include
int main()
{
int n, i;
printf("输入一个整数:");
scanf("%d", &n);
printf("%d=",n);
for(i=2;i<=n;i++)
{
while(n%i==0)
{
n=n/i;
if(n!=1)
{
printf("%d*",i);
}
else
{
printf("%d",i);
}
}
}
printf("\n");
return 0;
}