
C语言完数的计算
3个回答
展开全部
#include "stdio.h"
int main(int argc,char *argv[]){
int a[50]={1,},i,j,k,m,n,s;
printf("Input n(int n>1)...\nn=");
if(scanf("%d",&n)!=1 || n<2){
printf("Input error, exit...\n");
return 0;
}
for(i=6;i<=n;i++){
for(k=i>>1,s=m=1,j=2;j<=k;j++)
if(i%j==0)
a[m++]=j,a[m]=0,s+=j;
if(s==i){
printf("%6d = 1",s);
for(s=1;a[s];printf("+%d",a[s++]));
printf("\n");
}
}
return 0;
}
运行样例:
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
int input = 0;
int sum = 0;
int i = 0;
int p[50] = {0};
printf("请输入一个正整数\n");
scanf("%d",&input);
for (int a = 1;a<input;a++)
{
sum = 0;
i = 0;
for (int b = 1; b < a; b++)
{
if (a % b == 0)
{
p[i] = b;
i++;
sum += b;
}
}
if (sum == a)
{
printf("%d=", a);
for (int c = 0; c < i-1; c++)
{
printf("%d+", p[c]);
}
printf("%d\n",p[i-1]);
}
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{
int facts[200],sum,X,i,j,len;
scanf("%d",&X);
for(i=1;i<=X;i++)
{
sum=0;
len=0;
for(j=1;j<=i/2;j++)
{
if(0==i%j)
{
facts[len++]=j;
sum+=j;
}
}
if(sum==i)
{
printf("%d=",i);
for(j=0;j<len-1;j++)
printf("%d+",facts[j]);
printf("%d\n",facts[len-1]);
}
}
return 0;
}
int main()
{
int facts[200],sum,X,i,j,len;
scanf("%d",&X);
for(i=1;i<=X;i++)
{
sum=0;
len=0;
for(j=1;j<=i/2;j++)
{
if(0==i%j)
{
facts[len++]=j;
sum+=j;
}
}
if(sum==i)
{
printf("%d=",i);
for(j=0;j<len-1;j++)
printf("%d+",facts[j]);
printf("%d\n",facts[len-1]);
}
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询