您的位置:首页 > 编程语言 > C语言/C++

问题八十四:分解因子

2013-04-25 14:27 190 查看


#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");
}
}
}   


   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息