📄 8-2-12.c
字号:
/*中国系统分析员顾问团,http://www.csai.cn*/
/*程序员下午考试指南书籍源码*/
#include <stdio.h>
#include <malloc.h>
#define N 100
long factor (int m,int fac[],int *cp){
int c1, c2 , i, k;
long s;
fac[0] = 1;
for(c1 = s = 1,c2 = N-1,i = 2;;) {
k = m/i;
if (m%i == 0)
if (i != k){
fac[c1++] = i;
fac[c2--] = k;
s += i+k;
}
else {
fac[c1++] = i;
s += i;
}
i++;
if(i>=k) break;
}
for (c2++; c2<=N-1; c2++)
fac[c1++] = fac[c2];
*cp=c1;
return s;
}
//main()函数原题没有,为了便于测试补充进来了.
main()
{
int m=16,fac[N],*cp,i;
cp=(int *)malloc(sizeof(int));
factor(m,fac,cp);
printf("factor:");
for(i=0;i<*cp;i++)
printf(" %d",fac[i]);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -