马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
}
|