每日一算法:最大公因数、最小公倍数、因式分解

举报
悦来客栈的老板 发表于 2020/12/29 01:05:47 2020/12/29
【摘要】 #include <stdio.h> int main(){ int m,n,r; int s; printf("请输入两个正整数:"); scanf("%d %d",&m,&n); s = m * n; do {//辗转相除法 r = m % n; m = n; n = r; }while (n != 0); printf("GCM:%d...

  
  1. #include <stdio.h>
  2. int main()
  3. {
  4. int m,n,r;
  5. int s;
  6. printf("请输入两个正整数:");
  7. scanf("%d %d",&m,&n);
  8. s = m * n;
  9. do
  10. {//辗转相除法
  11. r = m % n;
  12. m = n;
  13. n = r;
  14. }while (n != 0);
  15. printf("GCM:%d\n",m);
  16. printf("LCM:%d\n",s/m);
  17. return 0;
  18. }


 

因式分解 (不使用质数表)


  
  1. #include <stdio.h>
  2. int main()
  3. {
  4. int i,n;
  5. printf("请输入一个整数:");
  6. scanf("%d",&n);
  7. printf("%d = ",n);
  8. for (i=2; i<=n;)
  9. {
  10. if (n % i == 0)
  11. {
  12. printf("%d * ",i);
  13. n = n/i;
  14. }
  15. else
  16. {
  17. i++;
  18. }
  19. }
  20. printf("%d\n",n);
  21. return 0;
  22. }


 


  
  1. #include <stdio.h>
  2. #define N 1000
  3. void prime(int *);
  4. void factor(int*, int);
  5. int main()
  6. {
  7. int temp;
  8. int ptable[N+1] = {0};
  9. prime(ptable);
  10. printf("请输入一个整数:");
  11. scanf("%d",&temp);
  12. printf("%d = ",temp);
  13. factor(ptable, temp);
  14. return 0;
  15. }
  16. void prime(int *pNum)
  17. {
  18. int i,j;
  19. int Prime[N+1];
  20. for (i=2; i<N; i++)
  21. {
  22. Prime[i] = 1;
  23. }
  24. for (i=2; i*i<=N; i++)
  25. {
  26. if (Prime[i] == 1)
  27. {
  28. for (j=2*i; j<=N; j+=i)
  29. {
  30. if (j % i == 0)
  31. {
  32. Prime[j] = 0;
  33. }
  34. }
  35. }
  36. }
  37. for (i=2,j=0; i<N; i++)
  38. {
  39. if (Prime[i] == 1)
  40. {
  41. pNum[j] = i;
  42. j++;
  43. }
  44. }
  45. }
  46. void factor(int* table, int num)
  47. {
  48. int i;
  49. for(i = 0; table[i] * table[i] <= num;)
  50. {
  51. if(num % table[i] == 0)
  52. {
  53. printf("%d * ", table[i]);
  54. num /= table[i];
  55. }
  56. else
  57. i++;
  58. }
  59. printf("%d\n", num);
  60. }


 

 

 

文章来源: blog.csdn.net,作者:悦来客栈的老板,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq523176585/article/details/14187953

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。