c语言编程题 一个数如果恰好等于它的因子之和,这个数就称为完数。例

c语言编程题一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子是1,2,3,而6=1+2+3,因此6为完数。编程序找出1000之内所有的完数,并按下列格式输... c语言编程题
一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子是1,2,3,而6=1+2+3,因此6为完数。编程序找出1000之内所有的完数,并按下列格式输出其因子:6 its factors are 1 2 3
展开
 我来答
听不清啊
高粉答主

推荐于2017-12-04 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include<stdio.h>

int main()

{int i,j,s;

 for(i=2;i<=1000;i++)

 {s=1;

  for(j=2;j<=i/2;j++)

 if(i%j==0)s+=j;

  if(s==i)

  {   printf("%d its factors are 1 ",i);

 for(j=2;j<=i/2;j++)

 if(i%j==0)printf("%d ",j);

 printf("\n");

  }

 }

return 0;

}

xin宝宝金牛
高粉答主

2018-04-18 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:275
采纳率:97%
帮助的人:11.7万
展开全部

如下图所示:

  1. C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

  2. 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

  3. 二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听不清啊
高粉答主

2016-06-20 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部

#include<stdio.h>

int main()

{int i,j,s;

 for(i=2;i<=1000;i++)

 {s=1;

  for(j=2;j<=i/2;j++)

 if(i%j==0)s+=j;

  if(s==i)

  {   printf("%d its factors are 1 ",i);

 for(j=2;j<=i/2;j++)

 if(i%j==0)printf("%d ",j);

 printf("\n");

  }

 }

return 0;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yucai100
2008-04-16 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:81.2万
展开全部
6,28,496
就这三个数
有三个程序
第一个:
#include <iostream>
using namespace std;
int main()
{const int m=1000; // 定义寻找范围
int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;
int i,a,n,s;
for (a=2;a<=m;a++) // a是2~1000之间的整数,检查它是否为完数
{n=0; // n用来累计a的因子的个数
s=a; // s用来存放尚未求出的因子之和,开始时等于a
for (i=1;i<a;i++) // 检查i是否为a的因子
if (a%i==0) // 如果i是a的因子
{n++; // n加1,表示新找到一个因子
s=s-i; // s减去已找到的因子,s的新值是尚未求出的因子之和
switch(n) // 将找到的因子赋给k1,...,k10
{case 1:
k1=i; break; // 找出的笫1个因子赋给k1
case 2:
k2=i; break; // 找出的笫2个因子赋给k2
case 3:
k3=i; break; // 找出的笫3个因子赋给k3
case 4:
k4=i; break; // 找出的笫4个因子赋给k4
case 5:
k5=i; break; // 找出的笫5个因子赋给k5
case 6:
k6=i; break; // 找出的笫6个因子赋给k6
case 7:
k7=i; break; // 找出的笫7个因子赋给k7
case 8:
k8=i; break; // 找出的笫8个因子赋给k8
case 9:
k9=i; break; // 找出的笫9个因子赋给k9
case 10:
k10=i; break; // 找出的笫10个因子赋给k10
}
}
if (s==0) // s=0表示全部因子都已找到了
{cout<<a<<" is a 完数"<<endl;
cout<<"its factors are:";
if (n>1) cout<<k1<<","<<k2; // n>1表示a至少有2个因子
if (n>2) cout<<","<<k3; // n>2表示至少有3个因子,故应再输出一个因子
if (n>3) cout<<","<<k4; // n>3表示至少有4个因子,故应再输出一个因子
if (n>4) cout<<","<<k5; // 以下类似
if (n>5) cout<<","<<k6;
if (n>6) cout<<","<<k7;
if (n>7) cout<<","<<k8;
if (n>8) cout<<","<<k9;
if (n>9) cout<<","<<k10;
cout<<endl<<endl;
}
}
return 0;
}

第二个:
#include <iostream>
using namespace std;
int main()
{int m,s,i;
for (m=2;m<1000;m++)
{s=0;
for (i=1;i<m;i++)
if ((m%i)==0) s=s+i;
if(s==m)
{cout<<m<<" is a完数"<<endl;
cout<<"its factors are:";
for (i=1;i<m;i++)
if (m%i==0) cout<<i<<" ";
cout<<endl;
}
}
return 0;
}

第三个:
#include <iostream>
using namespace std;
int main()
{int k[11];
int i,a,n,s;
for (a=2;a<=1000;a++)
{n=0;
s=a;
for (i=1;i<a;i++)
if ((a%i)==0)
{n++;
s=s-i;
k[n]=i; // 将找到的因子赋给k[1]┅k[10]
}
if (s==0)
{cout<<a<<" is a 完数"<<endl;
cout<<"its factors are:";
for (i=1;i<n;i++)
cout<<k[i]<<" ";
cout<<k[n]<<endl;
}
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liwei10086071
推荐于2019-08-14
知道答主
回答量:1
采纳率:0%
帮助的人:928
展开全部

#include<stdio.h>

#include<stdlib.h>

int main()

{

int b=0,count=0,t[50],sum=0;

for(int a=2;a<1000;a++)

{

b=a;

for(int i=2;i<=a;i++)/*每次循环:将每一个数(a)的因数储存在数列t里,最后a变为1*/

{

while(a%i==0)

{

t[count]=i;

a=a/i;

count++;

}

}

for(int j=0;j<count;j++)

{

sum=sum+t[j];

}

if((b-a)==sum)

printf("%d=",b);

for(int j=0;j<count;j++)

{

printf("%d+",t[j]);  

}

printf("1\n"); 

}

a=b;

sum=0;

count=0; 

}  

//system("pause");

return 0;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式