编程,找出200以内所有完数,并输出其因子。一个数如恰好等于它的因子之和,这个数称为完数,如6=1+2+3

#include<stdio.h>
int main()
{
int n,i,s=0;
printf("200以内的完数有:");
for(n=2;n<=200;n++)
{
for(i=1;i<n;i++)
{if(n%i==0) s+=i;}
if(s==n)
{
printf("%d:1",n);
for(i=2;i<n;i++)
{if(n%i==0)printf(" %d",i);}
printf("\n");
}
}return 0;
}
求大神指导,这个程序哪儿错了,咋就运行不出?

#include<stdio.h>

int main()
{
    int n,i,s=0;
    printf("200以内的完数有:");
    for(n=2;n<=200;n++)
        {
            s=0;//针对每一个n,s必须重设为0
            for(i=1;i<n;i++)
            {
                if(n%i==0)s+=i;
            }
            if(s==n){
                printf("%d:1",n);
                for(i=2;i<n;i++){
                    if(n%i==0)printf(" %d",i);
                }
            printf("\n");
            }
        }
    return 0;
}

在外层for的循环体开始处加了s=0

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-12-05
编程问题我觉得你这个得问专业学这个得

编程,找出200以内所有完数,并输出其因子。一个数如恰好等于它的因子之...
int main(){ int n,i,s=0; printf("200以内的完数有:"); for(n=2;n<=200;n++) { s=0;\/\/针对每一个n,s必须重设为0 for(i=1;i<n;i++) { if(n%i==0)s+=i; } if(s==n){ printf("%d:1",n); for(i=2;i<n;i++){ ...

...恰好等于它的因子之和,这个数就称为完数。求200之内的所有完数...
include<stdio.h>int main(){int i,j,sum;for (i=2;i<=200;i++){sum=0;for (j=1;j

...找出200以内所有的完数及其因子.一个数若等于它的各因子之和,称其...
i, k = 0;for (i = 2; i < number; i++){if (number%i == 0){a[k] = i;k++;s = s + i;}}if (s == number-1)return (k);else return(0);}void main(){int num, i, k, j, a[20];printf

C语言找出200以内的所有完数。一个数若恰好等于它的各因子之和,称这个...
好了,那个1没必要考虑的,当然如果一定要考虑,你可以在s=0后面加个 if(i ==1)printf("1\\n”);

用C语言编程:输出2~100之间所有完数,完数是指该数各因子之和等于该数...
C语言程序如下:include <stdio.h> int main(){ long int i,j,sum;for(i=2;i<100;i++){ sum=0;for(j=2;j<=i\/2;j++){ if(i%j==0){ sum=sum+j;} } if(i==sum+1)printf("%d\\n",i);} }

一个数如果恰好等于它的因子之和,这个数就称为“完数”。编写一程序找出...
源代码如下:include <stdio.h> main(){ int i,j;int sum;for(i=1;i<=1000;i++){ sum=0;for(j=1;j<i;j++){ if(i%j==0)sum+=j;} if(sum==i){ printf("%d its factors are ",i);for(j=1;j

c语言编程题 一个数如果恰好等于它的因子之和,这个数就称为完数。例
include<stdio.h> int main(){int i,j,s;for(i=2;i<=1000;i++){s=1;for(j=2;j<=i\/2;j++)if(i%j==0)s+=j;if(s==i){ printf("%d its factors are 1 ",i);for(j=2;j<=i\/2;j++)if(i%j==0)printf("%d ",j);printf("\\n");} } return 0;} ...

c语言编程:找出200以内所有完数,并输出其因子 输入输出示例:1=1 6=...
include <stdio.h> main(){ int i,m,c;for(m=1;m<=200;m++){ i=0;for(c=1;c<=m\/2;c++){ if(m%c!=0)continue;i=i+c;} if(i==m){ printf("%d=1",m);for(c=2;c<m;c++)if(m%c==0) printf("+%d",c);printf("\\n");} } } ...

c语言编程题 一个数如果恰好等于它的因子的和,这个数就称为完数。例
include<stdio.h> int main(){int i,j,s;for(i=2;i<=1000;i++){s=1;for(j=2;j<=i\/2;j++)if(i%j==0)s+=j;if(s==i){ printf("%d its factors are 1 ",i);for(j=2;j<=i\/2;j++)if(i%j==0)printf("%d ",j);printf("\\n");} } return 0;} ...

C语言编程:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例 ...
因为只需要输出完数的因子,所以如果在判断过程中保存因子,会存在极多不必要的操作;所以此处选用了在得到完数后再计算一次其因子的方式。\/ 完数:一个数的因子之和等于该数 \/ include <stdio.h> include <string.h> void main(){ int i,j,sum=1;for(i=3;i<=1000;i++){ sum=1;for(j=...

相似回答