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

C/C++ 将一个正整数分解质因数。例如:输入 90, 打印出 90=233*5

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ 面向对象

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ 设计模式

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C++ STL

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 技术杂谈

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 常用函数

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 图像处理

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 算法/面试

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C/C++ 项目实战


一.结果演示

please input a number:
90
90=2*3*3*5


please input a number:
200
200=2*2*2*5*5

二.源代码

程序分析:对 n 进行分解质因数,应先找到一个最小的质数 k ,然后按下述步骤完成:

1.如果这个质数恰等于 n ,则说明分解质因数的过程已经结束,打印出即可

2.如果 n>k ,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商 , 作为新的正整数你 n,重复执行第一步

3.如果 n 不能被 k 整除,则用 k+1 作为 k 的值 , 重复执行第一步

源码如下:

[wppay]

/************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C语言教程 - C/C++ 将一个正整数分解质因数。例如:输入 90, 打印出 90=2*3*3*5
//@Time:2021/09/30 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/************************************************************************/

#include <stdio.h>
#include <math.h>
#include <windows.h>

int main()
{
    int n, i;
    printf("\n please input a number: \n");
    scanf("%d", &n);
    printf("%d=", n);
    for (i = 2; i <= n; i++)
    {
        while (n != i)
        {
            if (n % i == 0)
            {
                printf("%d*", i);
                n = n / i;
            }
            else
                break;
        }
    }
    printf("%d", n);
}


[/wppay]

开通 vip 会员可免费阅读所有文章哟

代码下载:code.c


C4996 ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

解决办法参考:《C/C++ error C4996: ‘getch’: The POSIX name for this item is deprecated. Instead, use the ISO C++ conf》


三.猜你喜欢


   

推荐文章

发表评论