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]