右侧编辑器中有一个函数Cal它有一个参数n代表要进行分解的整数。 请在这个函数中补充代码将n进行质因数分解并按照n=a1a2a3an的形式输出占一行。 注意:a1a2a3an中不包括1而且要按照非递减的顺序排列。 输入数据由评测系统读取并传递给Cal函数。具体见测试说明。C语言
代码如下:
#include<stdio.h>
void Cal(int n)
{
int i,j,flag;
for(i=2;i<=n;i++)
{
flag=1;
for(j=2;j<i;j++)
{
if(i%j==0)
{
flag=0;
break;
}
}
if(flag==1&&n%i==0)
{
printf("%d",i);
n/=i;
i--;
if(n!=1)
printf("*");
}
}
}
int main()
{
int n;
scanf("%d",&n);
Cal(n);
return 0;
}
在这个程序中,我们根据题意,先从小到大枚举每一个可能的因子i,判断是否是质数并且是否是n的因子。如果是,我们就输出i,并将n除以i,继续枚举i;否则直接枚举下一个i。需要注意的是,如果n不等于1,最后我们还需要再输出一个“*”符号。
原文地址: https://www.cveoy.top/t/topic/bpne 著作权归作者所有。请勿转载和采集!