题目:将一个正整数分解质因数。例如:输入 90, 打印出 90=2*3*3*5 ?

题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰... 题目:将一个正整数分解质因数。例如:输入 90, 打印出 90=2*3*3*5 。
程序分析:对 n 进行分解质因数,应先找到一个最小的质数 k ,然后按下述步骤完成:
(1) 如果这个质数恰等于 n ,则说明分解质因数的过程已经结束,打印出即可。
(2) 如果 n<>k ,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商 , 作为新的正整数 n, 重复执行第一步。
(3) 如果 n 不能被 k 整除,则用 k+1 作为 k 的值 , 重复执行第一步。
展开
 我来答
我走的慢
2020-09-01 · TA获得超过1503个赞
知道小有建树答主
回答量:234
采纳率:0%
帮助的人:147万
展开全部

#include <stdio.h>


int main()

{

    //num要分解的数

    //i已经分解出来的。

    int num,i;

    printf("please input a num:");

    scanf("%d",&num);

    printf("%d=",num);


    //分解.从1到num检查,看看是不是因子。

    for(i=2; i<=num; i++)

        while(num%i==0)

        {

            num/=i;

            printf("%d*",i);

        }


    //1:输出最后一个因子。一定是1,如果上面for有=num也输出来了,所以只剩下1

    //即:num==1;

    //2:如果for没有=num的情况,那么,不一定是1的情况,可能还是其他,可以根据自己的需要改。

    printf("%d",num);


    return 0;

}

云南新华电脑学校
2020-08-31 · 百度认证:云南新华电脑职业培训学校官方账号
云南新华电脑学校
云南新华电脑学校是经云南省教育厅批准成立的省(部)级重点计算机专业学校,采用三元化管理模式,教学设备先进,师资雄厚学生毕业即就业,学院引进了电商企业入驻,创建心为电商创业园区,实现在校即创业
向TA提问
展开全部
public class Prog4{
public static void main(String[] args){
int n = 13;
decompose(n);
}
private static void decompose(int n){
System.out.print(n+"=");
for(int i=2;i<n+1;i++){
while(n%i==0 && n!=i){
n/=i;
System.out.print(i+"*");
}
if(n==i){
System.out.println(i);
break;
}
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式