任何一个合数都可以成若干个质因数相乘的形式,例如,120=2×2×2×3×5。 用程序实现将输入
任何一个合数都可以成若干个质因数相乘的形式,例如,120=2×2×2×3×5。用程序实现将输入的一个合数分解成质因数相乘的形式,其中,用函数fun的实现分解num的质因数...
任何一个合数都可以成若干个质因数相乘的形式,例如,120=2×2×2×3×5。
用程序实现将输入的一个合数分解成质因数相乘的形式,其中,用函数fun的实现分解num的质因数,将得到的全部质因数存放在a数组中。 展开
用程序实现将输入的一个合数分解成质因数相乘的形式,其中,用函数fun的实现分解num的质因数,将得到的全部质因数存放在a数组中。 展开
展开全部
#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;
}
追问
谢谢
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
#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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/*
分解质因数:
每个合数都可以写成几个质数相乘的形式。其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。分解质因数只针对合数。
分解质因数的算式叫短除法。求一个数分解质因数,要从最小的质数除起,一直除到结果为质数为止。
如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;
}
分解质因数:
每个合数都可以写成几个质数相乘的形式。其中每个质数都是这个合数的因数,叫做这个合数的分解质因数。分解质因数只针对合数。
分解质因数的算式叫短除法。求一个数分解质因数,要从最小的质数除起,一直除到结果为质数为止。
如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存储就是了啊!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询