鱼C论坛

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

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

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

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

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

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

#include<stdio.h>
#include<math.h>
#define max 100
int main(void)
{
        int i,j,k,len,n = 0;
        int a[max] = {0};
        int b[max] = {0};
        for(i = 100;i < 200;i++)
        {
                j = sqrt(i);
                for(k = 2;k <= j;k++)
                {
                        if(i % k == 0)
                        break;
                }
                if( k != j + 1)       //判定是否是合数
                {
                        a[n++] = i;
                }
                
        }
        len = sizeof(a) / sizeof(a[0]);
        
        for(i = 0;i < len && a[i] != 0;i ++)
        {
                k = 0;   //重置公因子数组 !很重要 很重要 很重要!
                putchar('\n');
                printf("%d = 1",a[i]);//打印表达式头部
                while(a[i] > 1)
                {
                        for(j = 2;j <= a[i];j ++)
                        {
                                
                                if(a[i] % j == 0)
                                {
                                        b[k++] = j;     //数组存储各个质数公因子
                                        a[i] /= j;
                                        j = 1;        //重置最小公因子
                                        
                                }
                                
                                b[k] = 0;
                                
                        }
                        
                }
                for(n = 0;b[n] != '\0';n++)
                printf(" * %d",b[n]);         //打印表达式尾部
                
                
        }
        return 0;
        
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 17:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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