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

如题所述

第1个回答  2019-11-12
对你的程序稍微改了一下,你看行不。
期待高手给个更好的答案
#include

#include

using
namespace
std;
int
main()
{
int
number,N,x,y;
cin
>>
number;
for(N=1;N<=number;N++)
{
y=0;
for(x=1;x<=sqrt(N*1.0);x++)
{
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.编程找出N以内的所有完数。
cin >> number;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)...

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;}

求完数,例如6=1+2+3(6的因子是1,2,3)读入两个正整数n和m(1<=n<m<10...
n, m, c=0; scanf("%d%d",&n, &m); for(i = n; i <= m; i ++) { if(check(i)) { if(c!=0) printf(" "); printf("%d

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;} 其实就是求出一个数的所有因子并加和看是否等于这个数,感觉效率似乎...

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

...完数”。例如6=1+2+3.编程找出1000以内的所有完数。
所谓完全数(又称完美数或完备数),是一种特殊的自然数;它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。 例如6有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6;第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。公元前6世纪的...

写出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其中6就是完数...
if(i==sum); 多了个分号 麻烦采纳,谢谢!

...完数”。例如6=1+2+3.编程找出1000以内的所有完数
c语言一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数 #include<stdio.h> void main() { int i,j,sum=1; for(i=3;i<=1000;i++) { sum=1; for(j=2;j

...这个数就称为“完数”。例如6=1+2+3。编程找出1000以内的所有完数...
main(){ static int k[10];int i,j,n,s:for(j=2;j<1000 j++){ n=-1;s=j;for(i=1;i<j;i++){ if((j%i)==0){ n++;s=s-i;k[n]=i;} } if(s=0){ printf("%d is a wanshu",j);for(j=0;i<n;i++)printf("%d,",k[i]);printf("%d\\n",k[n]);} }...

相似回答
大家正在搜