手机版
你好,游客 登录 注册
背景:
阅读新闻

C语言将一个正整数分解质因数代码及解析

[日期:2018-12-20] 来源:Linux社区  作者:Linux [字体: ]

将一个正整数分解质因数。例如:输入888,打印出888=2*2*2*3*37。

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

  • 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
  • 如果n>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
  • 如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

代码实现:

#include <stdio.h>

int main(){
 int n;  // 用户输入的整数
 int i;  // 循环标志

 printf("输入一个整数:");
 scanf("%d",&n);
 printf("%d=",n);

 // n>=2才执行下面的循环
 for(i=2; i<=n; i++){
  while(n!=i){
   if(n%i==0){
    printf("%d*",i);
    n=n/i;
   }else
    break;
  }
 }
 printf("%d\n",n);

 return 0;
}

运行结果:

linuxidc@linuxidc:~/www.linuxidc.com$ ./linuxidc.com
输入一个整数:888
888=2*2*2*3*37
linuxidc@linuxidc:~/www.linuxidc.com$ ./linuxidc.com
输入一个整数:999
999=3*3*3*37

C语言将一个正整数分解质因数代码及解析

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址https://www.linuxidc.com/Linux/2018-12/155929.htm

linux
相关资讯       C语言分解质因数 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款