注册 登录
编程论坛 C++教室

质因数乘积

江湖之神 发布于 2007-11-25 11:37, 1021 次点击
编程:
输入一个自然数,将其表示成质因数乘积的形式,要求编写普通方法和递归方法两种。例如:输入:140
输出:140=7*5*2*2
6 回复
#2
zjl1382007-11-25 12:01
你自已先写一下,不行再把代码发上来,让大伙帮你改一下.
#3
江湖之神2007-11-25 16:48
不知道怎么写啊!没数学思想啊!
#4
一直昏2007-11-25 21:19
我也学到这里,但是最后一位一直不对
描述:接受用户输入将一个正整数分解。例如90,打印出2*3*3*5
*/
#include <stdio.h>
void main()
{
    int n,k=2;
    printf("请输入一个整数");
    scanf("%d",&n);

        while(k<=n)
        {

           n=n/k;           //45 .15 .3

           while(n%k==0)
             {
                 n=n/k;
                 printf("%d\n",k);    //4

             }

           printf("%d\n",k); //2  3  3   4
           k++;               //3   4

        }

   
}
#5
江湖之神2007-11-25 22:01
#include<iostream.h>
bool prime(int n)
{
    int i;

    for(i=3;i<n;i++)
{
    
        if(n%i==0)
            return false;
        else
            return true;
}
    
}
int main()
{
    int i,n;
    cout<<"输入一个数:";
    cin>>n;
    cout<<n<<"=";
    for(i=2;i<=n;i++)
    {
        if(n%i==0)
        {
            if(prime(i))
            {
                cout<<i<<"*";
                n=n/i;
                i--;
            }
        }
    }
    cout<<endl;
}




//看一下怎么把最后的*去掉
#6
江湖之神2007-11-25 22:32
帮忙写个递归的啊!!!
#7
blueboy820062007-11-27 19:20
回复 5# 的帖子
感觉这样效率不高哦!
1