问题八十四:分解因子
print?#include <stdio.h>
int main()
{
int i;
int j=0;
int begin_num;
int num;
int mark;
int count[100];
int collect[100]={0};
printf("please enter a number:");
scanf("%d", &num);
begin_num=num; //用begin_num保持num,下面操作会改变num的值
for(i=1; 2*i-1<num; i++) //用奇数,偶数被省略
{
mark=2*i-1; //奇数
if(mark==1) //因为2是质数也是偶数,所以增加2
{
mark=2;
}
if(num%mark==0)
{
count[j]=mark; // 记录mark被除的次数
while(num%mark ==0)
{
num=num/mark;
collect[j]++; // 记录mark被除的次数
}
j++;
}
}
for(i=0; i<j; i++)
{
if(i==0) //限制打印一次
{
printf("%d==", begin_num);
}
printf("%d(%d)",count[i], collect[i]);
if(i==j-1) //最后换行
{
printf("\n");
}
}
}
#include <stdio.h>
int main()
{
int i;
int j=0;
int begin_num;
int num;
int mark;
int count[100];
int collect[100]={0};
printf("please enter a number:");
scanf("%d", &num);
begin_num=num; //用begin_num保持num,下面操作会改变num的值
for(i=1; 2*i-1<num; i++) //用奇数,偶数被省略
{
mark=2*i-1; //奇数
if(mark==1) //因为2是质数也是偶数,所以增加2
{
mark=2;
}
if(num%mark==0)
{
count[j]=mark; // 记录mark被除的次数
while(num%mark ==0)
{
num=num/mark;
collect[j]++; // 记录mark被除的次数
}
j++;
}
}
for(i=0; i<j; i++)
{
if(i==0) //限制打印一次
{
printf("%d==", begin_num);
}
printf("%d(%d)",count[i], collect[i]);
if(i==j-1) //最后换行
{
printf("\n");
}
}
}
补充:软件开发 , C语言 ,