任何一个合数都可以成若干个质因数相乘的形式,例如,120=2×2×2×3×5。 用程序实现将输入

任何一个合数都可以成若干个质因数相乘的形式,例如,120=2×2×2×3×5。用程序实现将输入的一个合数分解成质因数相乘的形式,其中,用函数fun的实现分解num的质因数... 任何一个合数都可以成若干个质因数相乘的形式,例如,120=2×2×2×3×5。

用程序实现将输入的一个合数分解成质因数相乘的形式,其中,用函数fun的实现分解num的质因数,将得到的全部质因数存放在a数组中。
展开
 我来答
wchyumo2011
推荐于2016-11-27 · TA获得超过2万个赞
知道大有可为答主
回答量:5810
采纳率:79%
帮助的人:2761万
展开全部
#include <stdio.h>

int isprime(int n)
{
    int i;
    for (i = 2; i*i <= n; ++i){
        if (n % i == 0)return 0;
    }
    return 1;
}

int fun(int n, int a[])
{
    int i = 2;
    int ct = 0, tn = n;
    while (tn != 1){
        while (tn % i == 0){
            a[ct] = i;
            ct++;
            tn /= i;
        }
        ++i;
        while (!isprime(i)){
            ++i;
        }
    }
    return ct;
}

int main()
{
    int a[100], ct, i, n = 120;
    ct = fun(n, a);
    printf ("%d\n", ct);
    printf ("%d=%d", n, a[0]);
    for (i = 1; i < ct; ++i){
        printf ("*%d", a[i]);
    }
    printf ("\n");
    return 0;
}

追问
谢谢
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友4bc4b54
2015-06-15 · TA获得超过497个赞
知道小有建树答主
回答量:265
采纳率:0%
帮助的人:154万
展开全部
C语言编程
#include <stdio.h>
main()
{
long n,i;
printf("
输入一个数:
");
scanf("%ld",&n);
printf("%ld=",n);
for(i=2;i<n;)
{
if(n%i==0)
{
printf("%d*",i);
n=n/i;
}
else

i++;
}
printf("%d",n);
}
具体可参考:http://wenku.baidu.com/link?url=fFER7JEVM8cvfcKR_jEXyPV09tcqgIUyezBXK_xTmjbAL6IS9kYULdZnD0X-DS-VG7jPfd1uliAY6YUH1se-UiYB9SfYFgf2VG6E4T_f0_i
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yplq1243
2015-06-15 · TA获得超过150个赞
知道答主
回答量:84
采纳率:0%
帮助的人:44.7万
展开全部
/*
分解质因数:
每个合数都可以写成几个质数相乘的形式。其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。分解质因数只针对合数。
分解质因数的算式叫短除法。求一个数分解质因数,要从最小的质数除起,一直除到结果为质数为止。
如24
2┖24(是短除法的符号)
2┖12
2┖6
3——3是质数,结束
得出24=2×2×2×3=2^3×3(m^n=m的n次方)
*/
#include <iostream>
using namespace std;
class QualityFactor
{
private:
int n;
public:
void QFContract(long a) //用短除法对合数进行分解
{
n = 0; //初始化
while(a>1)
{
for(int i=2;i<=a;i++)
{
if(a%i==0) //短除法
{
a = a/i;
cout << i << " "; //输出因子
break;
}
}
}
cout << endl;
}
};
int main(int argc, char* argv[])
{
QualityFactor QF;
long number;
cout << "输入要解的合数" << endl;
cin>>number;
QF.QFContract(number);
system("pause");
return 0;
}
追问
后面有要求,需要定义fun函数,还要把质因数放在数组a里
追答
QFContract 函数不就是你要的fun函数吗?直接自己改下名字就可以了啊,放数组里也不是很复杂的事情,自己用queue存储就是了啊!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式