/
6
6 = 1 + 2 + 3
28
28 = 1 + 2 + 4 + 7 + 14
1024
0
Press any key to continue
/
#include <stdioh>#include <stdlibh>
int main() {
int i,j,n,num,sum,a[16];
while(scanf("%d",&num) == 1 && num > 0) {
j = 0;
sum = 0;
for(n = 1; n <= num / 2; ++n) {
if(num % n == 0) {
sum += n;
a[j++] = n;
}
}
if(sum == num) {
printf("%d = ",num);
for(i = 0; i < j; ++i) {
if(i == j - 1) printf("%d",a[i]);
else printf("%d + ",a[i]);
}
printf("\n");
}
}
return 0;
}
/完数,即完美数,一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3(6的因子是1,2,3)/
#include<stdioh>
void main()
{
int i,j,k,h,s,sum;
int a[200];//20个是不够的
s=0;
sum=0;
for(i=2;i<=1000;i++)
{
s=0;//此处s=0一定要加,因为前几次循环的时候s的值已经改变
k=0;
for(j=1;j<i;j++)
{
if((i%j)==0){a[k]=j;k++;}
}
for(h=0;h<k;h++)
{
s+=a[h];
}
if(i==s){printf("%d ",i);sum++;}
}
printf("完数的个数:%d\n",sum);
}
时间太紧,没注意程序的简洁性和效率,这个需要你自己改了!
1 #include <stdioh>
2
3 int main()
4 {
5 int i,sum,t=1;
6 while(t++)
7 {
8 sum=0;
9 for(i=1;i<t;i++)
10 if(t%i == 0)
11 sum+=i;
12 if(sum == t)
13 printf("%d\n", sum);
14 }
15 return 0;
16 }
改好了,看注释
#include<stdioh>
int main ()
{
int a = 1, i = 1, b = 0;
while (a <= 1000)
{
while (i < a) //不应该包括a本身
{
if (a % i == 0)
b += i; //多了++
i++;
}
if (b == a)
{
printf ("%d its factors are ", a);
i = 1;
while (i < a) //不应该包括a本身
{
if (a % i == 0)
printf ("%d,", i); //斜杠是干什么用的?多了++
i++;
}
printf("\n"); //加个换行
}
a++;
b = 0;
i = 1;
}
return 0;
}
以上就是关于c++弄一个程序来判断一个数字是不是完全数全部的内容,包括:c++弄一个程序来判断一个数字是不是完全数、C语言求完数、可以解释一下编写求完全数的程序的思路吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)