C语言求 1000以内的完全数
问题O:1000以内的完全数题目描述一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。本题要求使用函数实现,函数原...
问题 O: 1000以内的完全数
题目描述
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。
本题要求使用函数实现,函数原型
void startJudge(int value) {
if( Judge(value) ) {
printf("%d ",value);
}
}
输入
一个sum (sum < 1000) ,表示测试数据的组数,接着sum行,每一行表示一个测试数据n,表示要求1到n以内的完数,1在这里不算是完数。
输出
范围内的完数,如果范围内没有完数请输出none,每组测试数据空出一行。
样例输入
2
1
6
样例输出
none
6
我是这样写的,没有按照那个函数原型,想问一下哪里错了
#include <stdio.h>
int wanquanshu()
{
int n,i,k,sum;
while(scanf("%d",&n)!=EOF)
{
for(i=1; i<=n; i++)
{
for(k=1; k<i; k++)
{
sum=0;
if(i%k==0)
{
sum=sum+k;
}
}
if(sum==i)
{
printf("%d\n",i);
}
}
}
return 0;
}
void main()
{
wanquanshu();
} 展开
题目描述
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。
本题要求使用函数实现,函数原型
void startJudge(int value) {
if( Judge(value) ) {
printf("%d ",value);
}
}
输入
一个sum (sum < 1000) ,表示测试数据的组数,接着sum行,每一行表示一个测试数据n,表示要求1到n以内的完数,1在这里不算是完数。
输出
范围内的完数,如果范围内没有完数请输出none,每组测试数据空出一行。
样例输入
2
1
6
样例输出
none
6
我是这样写的,没有按照那个函数原型,想问一下哪里错了
#include <stdio.h>
int wanquanshu()
{
int n,i,k,sum;
while(scanf("%d",&n)!=EOF)
{
for(i=1; i<=n; i++)
{
for(k=1; k<i; k++)
{
sum=0;
if(i%k==0)
{
sum=sum+k;
}
}
if(sum==i)
{
printf("%d\n",i);
}
}
}
return 0;
}
void main()
{
wanquanshu();
} 展开
2个回答
展开全部
重置sum的位置错了,放到内循环的开头:
#include <stdio.h>
int wanquanshu()
{
int n, i, k, sum;
while (scanf("%d", &n)!=EOF)
{
for (i=1; i<=n; i++)
{
sum=0; //放在这里
for (k=1; k<i; k++)
{
if (i%k==0)
{
sum=sum+k;
}
}
if (sum==i)
{
printf("%d\n", i);
}
}
}
return 0;
}
void main()
{
wanquanshu();
}
追问
怎样不输出1?还有大大能不能把这个题的答案发给我?我的这串代码还是有问题
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询