
求C语言高手帮忙做一道编程题,谢了~
【问题描述】将一个正整数分解质因数。例如,输入90,输出90=2*3*3*5。提示:从最小的质数2除起。【输入形式】从键盘输入一个正整数。【输出形式】参见样例【样例输入输...
【问题描述】
将一个正整数分解质因数。例如,输入90,输出90=2*3*3*5。
提示:从最小的质数2除起。
【输入形式】
从键盘输入一个正整数。
【输出形式】
参见样例
【样例输入输出1】
Input a number: 90
90=2*3*3*5
【样例输入输出2】
Input a number: 12
12=2*2*3
【样例输入输出3】
Input a number: 17
17=17
【样例说明】下划线表示输入,等号两边无空格。 :后面有一个空格。注意字母的大小写
不要复制网上的代码,我交上作业服务器判定错误,因为分解后最后一个数字后面还有个* ,而要求是没有的...... 展开
将一个正整数分解质因数。例如,输入90,输出90=2*3*3*5。
提示:从最小的质数2除起。
【输入形式】
从键盘输入一个正整数。
【输出形式】
参见样例
【样例输入输出1】
Input a number: 90
90=2*3*3*5
【样例输入输出2】
Input a number: 12
12=2*2*3
【样例输入输出3】
Input a number: 17
17=17
【样例说明】下划线表示输入,等号两边无空格。 :后面有一个空格。注意字母的大小写
不要复制网上的代码,我交上作业服务器判定错误,因为分解后最后一个数字后面还有个* ,而要求是没有的...... 展开
展开全部
编程题目不能靠别人,只有自己动手写才会得到最大的收获,思维的训练都是在思考练习中培养的,老是让别人替写,百害无一利。告诉你思路,自己尝试写:先判断输入的数据是不是质数,是就直接输出,不是的话就从除以2开始找能除尽的值,定义一个全局数组变量保存除数(质因数),然后写一个递归函数,最后一次从数组中输出。
展开全部
#include<stdio.h>
main()
{
int n,i,m,t;
printf("Input a number:");
scanf("%d",&n);
m=n;t=1;
printf("%d=",n);
for(i=2;i<=n;i++)
if(n%i==0)
{
t=t*i;
printf("%d",i);
if(t!=m)printf("*");
n=n/i;
i=1;
}
printf("\n");
}
我自己写的哦,代码比较简单 ,有不懂可以问
main()
{
int n,i,m,t;
printf("Input a number:");
scanf("%d",&n);
m=n;t=1;
printf("%d=",n);
for(i=2;i<=n;i++)
if(n%i==0)
{
t=t*i;
printf("%d",i);
if(t!=m)printf("*");
n=n/i;
i=1;
}
printf("\n");
}
我自己写的哦,代码比较简单 ,有不懂可以问
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main(){
int inputnumber=0;
int temp=0;
int i=2;
bool isfirst=1;
printf("Input a number:");
scanf("%d",&inputnumber);
temp=inputnumber/2;
printf("%d=",inputnumber);
while(i<temp){
if(inputnumber%i==0){
inputnumber/=i;
if(isfirst==1){
printf("%d",i);
isfirst=0;
}
else
printf("*%d",i);
continue;
}
i++;
}
if(inputnumber!=1)
printf("%d",inputnumber);
printf("\n");
}
我用的是CFree,测试没问题。
int main(){
int inputnumber=0;
int temp=0;
int i=2;
bool isfirst=1;
printf("Input a number:");
scanf("%d",&inputnumber);
temp=inputnumber/2;
printf("%d=",inputnumber);
while(i<temp){
if(inputnumber%i==0){
inputnumber/=i;
if(isfirst==1){
printf("%d",i);
isfirst=0;
}
else
printf("*%d",i);
continue;
}
i++;
}
if(inputnumber!=1)
printf("%d",inputnumber);
printf("\n");
}
我用的是CFree,测试没问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个蛮简单, 先用数 除以最小的从1开始的数,然后又重新开始除。知道除尽为止。输出
追问
能帮我写出代码吗?我还是不会。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询