#include stdio.h
# include stdlib.h
#define N 100
long factor(int m,int fac[],int *cp){
long s;
fac[0]=1;
k=m/i;
if(m%i==0){
if(i!=k){
fac[c1◆◆]=i;
s◆=i◆k;
printf("i=%d k=%d\n",i,k);
}else{
s◆=i;
}
i◆◆;
if(i=k) break;//这个时候k已经开始等于自身的根号,或者将要出现和之前k对称的i,引起自身重复故退出
*cp=c1;
return s;
int main(int argc, char const *argv[])
{
/* code */
int factors[N],i,count;
long sum;
sum = factor(atoi(argv[1]),factors,count);
for(i=0;icount;i◆◆){
printf("\n\n");
return 0;
扩展资料:
有一种说法是"因子不限正负",不过通常情况下只取正因子.
①., -1, n 和 -n 这些数叫做 n 的明显因子
对于整数n,采用循环从1到n-1进行检查,如果检测到是n的因数,则将该数累加起来,最后输出结果即可.参考代码如下:
#include?stdio.h
int?main()
int?sum=0;
int?n=0;?
int?i,m=0;
scanf("%d",?n?);?//输入一个整数
if?(?n=?0?)?//只统计正整数
return?-1;
printf("1");?//最小的因数是1,必然存在
sum?=?1;
if?(?n%i==0?)?//能整除,是因子
sum?◆=?i?;?//累加
printf("◆%d",?i?);?//输出该因子
printf("=%d\n",?sum?);?//输出因子和
return?0;
程序的执行效率非常高(瞬间就完成):
#include "stdio.h"
int fun(int n)
{int i,s=n◆1;
if(n%i==0)s◆=i◆n/i;
if(i*i==n)s◆=i;
main()
{ int k;
scanf("%d",k);
printf("%d\n",fun(k));
#includestdio.h
{?
int?n,i,s;?
while(scanf("%d",n)!=EOF)?
s=1;?//如果不需要包含1,可改为s=0
printf("因子列表:%d?",s);?
{??
if(n%i==0)
printf("%d?",i);?
s◆=i;??
}?
printf("\n因子和:s=%d\n",s);?
以上就是土嘎嘎小编为大家整理的c语言用函数求因子和相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!