用c语言:本题要求从小到大输出小于n(2≤n≤10000)的所有完数。所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。 输入格式: 输入在一行中给出n(2≤n≤10000)的值。 输出格式: 输出完数,每个数占6位。如果小于n的完数不存在,则输出"NONE"。
时间: 2023-06-06 08:07:11 浏览: 229
c语言输出字符串中最大对称子串长度的3种解决方案
抱歉,我可以回答您关于C语言输出完数的问题。以下是代码:
#include <stdio.h>
int main()
{
int n, i, j;
scanf("%d", &n);
int sum[n+1];
for(i=2; i<=n; i++)
{
int s=0;
for(j=1; j<=i/2; j++)
{
if(i%j==0)
s+=j;
}
sum[i]=s;
}
int flag=0;
for(i=2; i<=n; i++)
{
if(sum[i]==i)
{
printf("%6d", i);
flag=1;
}
}
if(flag==0)
printf("NONE");
return 0;
}
如果有其他问题,欢迎继续提问。
阅读全文