2515|2

20

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

C语言算法之19:分解质因数 [复制链接]

手一定要越过思想的额头,行动高于一切。

 

学技术,重在日拱一卒、一点一滴的积累。

 

今天一起分析C语言的算法之19:分解质因数。

 

算法题目:将一个正整数分解质因数。

 

例如:输入90,打印出90=2*3*3*5。

 

说明:图片来自网络

 

 

编程思路分析
 

质因数(素因数或质因子):

 

在数论里是指能整除给定正整数的质数。

 

除了1以外,两个没有其他共同质因子的正整数称为互质。

 

因为1没有质因子,1与任何正整数(包括1本身)都是互质。

正整数的因数分解可将正整数表示为一连串的质因子相乘,质因子如重复可以用指数表示。根据算术基本定理,任何正整数皆有独一无二的质因子分解式 。

 

只有一个质因子的正整数为质数。

 

每个合数都可以写成几个质数(也可称为素数)相乘的形式 ,这几个质数就都叫做这个合数的质因数。

 

如果一个质数是某个数的因数,那么就说这个质数是这个数的质因数;而这个因数一定是一个质数。

 

编程思路:用for语句和if语句嵌套实现。

 

程序范例

 

#include<stdio.h>

 

void number(int n);

 

int main()

{

    int n;

    printf("请输入一个整数:");

    scanf("%d",&n);

    number(n);

    return 0;

}

 

void number(int n)

{

    int temp=n;

    int i,j=0;

    int a[20]={0};

 

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

    {

        if(n%i==0)

        {

            a[j++]=i;

            n=n/i; //去掉这一部分

            i=1; //重新从1开始判断

        }

    }

    printf("%d=%d",temp,a[0]);

    for(i=1;i<j;i++)

    {

        printf("*%d",a);

    }

    printf("\n");

}

 

程序运行结果案例:

此帖出自编程基础论坛

最新回复

思路很好,学习了!   详情 回复 发表于 2022-3-3 19:56
点赞 关注
 

回复
举报

320

帖子

0

TA的资源

纯净的硅(初级)

沙发
 

看起来不错,不知道效率怎么样,似乎效率不是很高

此帖出自编程基础论坛
 
 
 

回复

1074

帖子

0

TA的资源

纯净的硅(高级)

板凳
 

思路很好,学习了!

此帖出自编程基础论坛
 
个人签名چوآن شـين
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表