编程论坛
注册
登录
编程论坛
→
C++教室
质因数乘积
江湖之神
发布于 2007-11-25 11:37, 1021 次点击
编程:
输入一个自然数,将其表示成质因数乘积的形式,要求编写普通方法和递归方法两种。例如:输入:140
输出:140=7*5*2*2
6 回复
#2
zjl138
2007-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
blueboy82006
2007-11-27 19:20
回复 5# 的帖子
感觉这样效率不高哦!
1