重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
对于整数n,采用循环从1到n-1进行检查,如果检测到是n的因数,则将该数累加起来,最后输出结果即可。参考代码如下:
沂南ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!
#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;
for( i=2;in;i++ )
{
if ( n%i==0 ) //能整除,是因子
{
sum += i ; //累加
printf("+%d", i ); //输出该因子
}
}
printf("=%d\n", sum ); //输出因子和
return 0;
}
C语言实现,参考代码如下:
#include stdio.h
int main()
{
int n,i,sum=0;
scanf("%d",n);
if(n1)return 0;
for(i=1;i=n;++i)
if(n%i==0)
sum+=i;
printf("因数之和为%d",sum);
return 0;
}
如果你说的因数要包含自身和1的话,那么是这个代码:
#includestdio.h
void main()
{
int i,a,sum;
printf("please input a number:");
scanf("%d",a);
sum=0;
for(i=1;i=a;i++)
{
if(a%i==0)
sum=sum+i;
}
printf("%d",sum);
}
如果按照你原来的代码:
#includestdio.h
void main()
{
int i,a,sum;
printf("please input a number:");
scanf("%d",a);
sum=0;
for(i=2;ia;i++)
{
if(a%i==0)
sum=sum+i;
}
printf("%d",sum);
}
你最大的错误就是%d写成了d%,%d是输入输出整数的格式,而d%什么都不是
楼上答案是错误的
如果对你有帮助请采纳谢谢。
参考代码如下
#includestdio.h
int main()
{
int i,n,b;
long sum=0;
scanf("%d",n);
sum=n;
printf("所有因数:");
for(i=1;i=n/2;++i)
if(n%i==0){
printf("%d ",i);
sum+=i;
}
printf("%d ",n);
printf("\nsum=%d ",sum);
return 0;
}
main()
{
int i,n,s=0;
printf("请输入小于1000的数值:\n");
scanf("%d",n);
if(n1000)
{ printf("你输入的数值大于了1000,请重新输入\n");
goto loop; }
for(i=1;i=n;i++)
if(n%i==0)
s+=i;
printf("因数和为:%d\n",s);
loop:
}
#includemath.h
int
fun(int
n)
{int
i,k=1;br
for(i=2;i=sqrt(n);i++)br
if(n%i==0)
k=0;br
return
k;}
void
factor(int
n)
{
int
i,x,m=n;
printf("\n%d=",n);
for(i=2;i=n;i++)
{
if(fun(i)==1m%i==0){
printf("%d*",i);
m=m/i;
i=1;
if(fun(m)==1)
break;}
}
printf("%d\n",m);
}
main()
{
int
a;
printf("shu
ru
yi
ge
shu:");
scanf("%d",a);
factor(a);
}
因为一定要是素因数的乘积
所以我多用了一个判断是不是素数的函数,可以不?
如果只能用一个函数,你就自己把fun函数放进去,不过写起来就有点繁了!