请教C语言高手:一个数如果恰好等于它的因子之和,这个数就称为“完数”。
编程找出1000之内的所有“完数”,并按下面格式输出其因子:6itsfactorsare1,2,3...
编程找出1000之内的所有“完数”,并按下面格式输出其因子:
6 its factors are 1,2,3 展开
6 its factors are 1,2,3 展开
4个回答
展开全部
main()
{ int i,j,n=0,a[100],m=0;
for( i=1;i<=1000;i++ )
{ n=0;
m=0;
for( j=1;j<i;j++ )
if( i%j==0 )
{ a[m++]=j;
n+=j;
}
if( n==i )
{ printf("\n%d its factors are ",i);
for( n=0;n<m-1;n++ )
printf("%4d,",a[n]);
printf("%4d",a[n]);
}
}
printf("\n");
}
结果:
6 its factors are 1, 2, 3
28 its factors are 1, 2, 4, 7, 14
496 its factors are 1, 2, 4, 8, 16, 31, 62, 124, 248
{ int i,j,n=0,a[100],m=0;
for( i=1;i<=1000;i++ )
{ n=0;
m=0;
for( j=1;j<i;j++ )
if( i%j==0 )
{ a[m++]=j;
n+=j;
}
if( n==i )
{ printf("\n%d its factors are ",i);
for( n=0;n<m-1;n++ )
printf("%4d,",a[n]);
printf("%4d",a[n]);
}
}
printf("\n");
}
结果:
6 its factors are 1, 2, 3
28 its factors are 1, 2, 4, 7, 14
496 its factors are 1, 2, 4, 8, 16, 31, 62, 124, 248
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Sievers分析仪
2024-12-30 广告
2024-12-30 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
展开全部
#include <stdio.h>
#include <conio.h>
void main()
{
int m,i,s;
for(m=1;m<=1000;m++) //从1开始到1000循环结束
{
s=0;//初始化因子之和s为0
for(i=1;i<m;i++) //寻找在1到m之间,有多少m的因子
if(m%i==0) //如果m能整除i,则i为m的因子
s=s+i;//将因子累加
if(s==m) //如果因子之和等于这个数
printf("%d\t",s);//输出
}
getch();
}
运行结果:
6 28 496
#include <conio.h>
void main()
{
int m,i,s;
for(m=1;m<=1000;m++) //从1开始到1000循环结束
{
s=0;//初始化因子之和s为0
for(i=1;i<m;i++) //寻找在1到m之间,有多少m的因子
if(m%i==0) //如果m能整除i,则i为m的因子
s=s+i;//将因子累加
if(s==m) //如果因子之和等于这个数
printf("%d\t",s);//输出
}
getch();
}
运行结果:
6 28 496
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h> int main() { int n=1000; int r,j,i; for(i=1;i<n; i++){ r = 0; for(j=1;j<i;j++){ if(i%j == 0){ r = r + j; } } if(r == i){ printf("the result is:%d\n",r); } } return 0; }
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <string.h>
#define n 1000
void main()
{
int i, j;
int factor[n];
int factor_num;
int sum;
for (i = 1; i <= 1000; i++)
{
factor_num = 0;
sum = 0;
for (j = 1; j <= i / 2; j++)
if (i % j == 0)
{
factor[factor_num++] = j;
sum += j;
}
if (sum == i)
{
printf("%d its factors are 1", i);
for (j = 1; j < factor_num; j++)
printf(", %d", factor[j]);
printf("\n");
}
}
}
#include <string.h>
#define n 1000
void main()
{
int i, j;
int factor[n];
int factor_num;
int sum;
for (i = 1; i <= 1000; i++)
{
factor_num = 0;
sum = 0;
for (j = 1; j <= i / 2; j++)
if (i % j == 0)
{
factor[factor_num++] = j;
sum += j;
}
if (sum == i)
{
printf("%d its factors are 1", i);
for (j = 1; j < factor_num; j++)
printf(", %d", factor[j]);
printf("\n");
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询