鱼C论坛

 找回密码
 立即注册
查看: 1903|回复: 0

[技术交流] C语言 100 - 200 以内的合数的质数乘积表达式

[复制链接]
发表于 2020-3-30 20:58:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
班门弄斧 不足之处恳请指出



  1. #include<stdio.h>
  2. #include<math.h>
  3. #define max 100
  4. int main(void)
  5. {
  6.         int i,j,k,len,n = 0;
  7.         int a[max] = {0};
  8.         int b[max] = {0};
  9.         for(i = 100;i < 200;i++)
  10.         {
  11.                 j = sqrt(i);
  12.                 for(k = 2;k <= j;k++)
  13.                 {
  14.                         if(i % k == 0)
  15.                         break;
  16.                 }
  17.                 if( k != j + 1)       //判定是否是合数
  18.                 {
  19.                         a[n++] = i;
  20.                 }
  21.                
  22.         }
  23.         len = sizeof(a) / sizeof(a[0]);
  24.        
  25.         for(i = 0;i < len && a[i] != 0;i ++)
  26.         {
  27.                 k = 0;   //重置公因子数组 !很重要 很重要 很重要!
  28.                 putchar('\n');
  29.                 printf("%d = 1",a[i]);//打印表达式头部
  30.                 while(a[i] > 1)
  31.                 {
  32.                         for(j = 2;j <= a[i];j ++)
  33.                         {
  34.                                
  35.                                 if(a[i] % j == 0)
  36.                                 {
  37.                                         b[k++] = j;     //数组存储各个质数公因子
  38.                                         a[i] /= j;
  39.                                         j = 1;        //重置最小公因子
  40.                                        
  41.                                 }
  42.                                
  43.                                 b[k] = 0;
  44.                                
  45.                         }
  46.                        
  47.                 }
  48.                 for(n = 0;b[n] != '\0';n++)
  49.                 printf(" * %d",b[n]);         //打印表达式尾部
  50.                
  51.                
  52.         }
  53.         return 0;
  54.        
  55. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 20:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表