C语言编程 求一个区间内的完数 例如6=1+2+3.编程找出N以内的所有完数

急求大神指导

第1个回答  2014-11-26
#include<stdio.h>
#define N 80//这里输入N的值
main()
{
int i,j,k,sum;
for(i=1;i<=N;i++)
{
sum=0;
for(j=1;j<=i;j++)
{
sum+=j;
if(sum==i)
{
printf("%d=",sum);
for(k=1;k<j;k++)
printf("%d+",k);
printf("%d\n",j);
break;
}
}
}
}

运行结果如下:
1=1
3=1+2
6=1+2+3
10=1+2+3+4
15=1+2+3+4+5
21=1+2+3+4+5+6
28=1+2+3+4+5+6+7
36=1+2+3+4+5+6+7+8
45=1+2+3+4+5+6+7+8+9
55=1+2+3+4+5+6+7+8+9+10
66=1+2+3+4+5+6+7+8+9+10+11
78=1+2+3+4+5+6+7+8+9+10+11+12
Press any key to continue

本回答被提问者和网友采纳

C++ 求一个区间内的完数 例如6=1+2+3.编程找出N以内的所有完数。
for(N=1;N<=number;N++){ y=1;for(x=2;x<=sqrt((double)N);x++)\/\/既然1这么特殊为什么还要算他,这样就每次少了两次比较。{ if(N%x==0)y=y+x+N\/x;\/\/约数是成对的,所以检查到sqrt(开方)就好了。} if(sqrt((double)N)==(int)sqrt((double)N))y-=(int)sqrt((double)N...

C++ 求一个区间内的完数 例如6=1+2+3.编程找出N以内的所有完数。
{ if(x==1)y=1;else if(N%x==0)y=y+x+N\/x;} if(N==y)cout << N << endl;} return 0;}

C语言。编程求完数 例如:6=1+2+3(一个数正好等于其因子和)
} int main(){int i;for(i=2;i<=10000;i++)if(sum1(i)==i)printf("%d\\n",i);return 0;}

C编程求一个数为完数,例如6=1+2+3
include<iostream> using namespace std;int main() { int n=1000;int r=0,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){cout<<i<<endl;}} return 0;} 其实就是求出一个数的所有因子并加和看是否等于这个数,感觉效率似乎...

...完数”。例如6=1+2+3.编程找出1000以内的所有完数。
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。  我来答 1个回答 #热议# 柿子脱涩方法有哪些?好学者百科 2022-12-11 · 百度认证:北京惠企网络技术有限公司官方帐号 好学者百科 科技生活门户网站,探索发现百科全书。 向TA提问 ...

求完数,例如6=1+2+3(6的因子是1,2,3)读入两个正整数n和m(1<=n<m<10...
include <stdio.h>int check(int n){ int s=0,i; for(i = 1; i < n; i ++) if(n%i == 0) s+=i; return s==n;}int main(){ int i, n, m, c=0; scanf("%d%d",&n, &m); for(i = n; i <= m; i ++) { if(check(i)) { ...

...个数字输出这个数字以内所有的,完数。例如6=1+2+3其中6就是完数...
if(i==sum); 多了个分号 麻烦采纳,谢谢!

写出2到1000的完数,例如6=1+2+3的程序
int main(void){     int i,j,m;    for(i=4;i<1000;i+=2){         for(m=1,j=2;j*j<=i;j++)        ...

...完数”。例如6=1+2+3.编程找出1000以内的所有完数
{ int

...求2-100中的完数(因子之和等于它本身的数称为完数,如6=1+2+3...
class Program { static void Main(){ int i, num, sum;Console.WriteLine("2-100之间的完数一览:");for (num = 2; num <= 100; num++){ sum=1;for (i = 2; i <= num \/ 2; i++)if (num % i == 0)sum += i;if (sum == num)Console.WriteLine(num);} } } 运行...

相似回答