Draem 发表于 2020-3-30 20:58:12

C语言 100 - 200 以内的合数的质数乘积表达式

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



#include<stdio.h>
#include<math.h>
#define max 100
int main(void)
{
        int i,j,k,len,n = 0;
        int a = {0};
        int b = {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 = i;
                }
               
        }
        len = sizeof(a) / sizeof(a);
       
        for(i = 0;i < len && a != 0;i ++)
        {
                k = 0;   //重置公因子数组 !很重要 很重要 很重要!
                putchar('\n');
                printf("%d = 1",a);//打印表达式头部
                while(a > 1)
                {
                        for(j = 2;j <= a;j ++)
                        {
                               
                                if(a % j == 0)
                                {
                                        b = j;   //数组存储各个质数公因子
                                        a /= j;
                                        j = 1;      //重置最小公因子
                                       
                                }
                               
                                b = 0;
                               
                        }
                       
                }
                for(n = 0;b != '\0';n++)
                printf(" * %d",b);         //打印表达式尾部
               
               
        }
        return 0;
       
}
页: [1]
查看完整版本: C语言 100 - 200 以内的合数的质数乘积表达式