英国大学物理学与哲学:程序设计问题

来源:百度文库 编辑:高考问答 时间:2024/04/28 01:38:02
程序中的函数factor(int, m, int fac[],int *cp)用来计算正整数m(m>2)的除自身以外的所有不同因子的和。改函数返回因子和,并把个因子从小到打一次存放在数组fac中,其因子个数存入在cp所指的变量中。例如m=16时,其因子为(1,2,4,8),因子的个数为4,因子和为15。程序中假定正整数m不同因子个数不超过100个。

在程序中下划线上添入相应代码。

#include <stdio.h>
#define N 100
long factor (intm,int fac[], int 8cp)
{ int c1,c2,i,k;
long int s;
fac[0]=1;
for(c1=s=1,c2=N-1,_________;;){
k=m/i;
if(_______)
if(_______) {
fac[c1++]=i; fac[c2--]=k; s+=i+k;
}
else {fac[c1++]=i; s+=i;}
i++;
if(i>l) break;
}
for (c2++; c2<=N-1; c2++)______;
*cp=c1;
retuen __________;
}

i=1
i*k==m
i!=k
fac[c1++]=fac[c2++];
s