FireQ 发表于 2020-4-6 20:51:54

c语言基础题求助

在屏幕上输出m以内所有满足要求的数。要求:该数除了1和本身之外所有因子之和为n
例:输入200 30输出32 125 161



int m,n;
    scanf("%d %d",&m,&n);
    int i,j,k;
    int sum=0;
    for(i=3;i<=m;i++){
      j=2;
      for(;j<i;j++){
            k=i%j;
            if(k==0){
                sum+=j;
            }
      }
      if(sum==n){
            printf("%d",i);
      }
    }

不知道哪里错了,希望大神帮助

BngThea 发表于 2020-4-6 20:55:07

外层循环每次都应该将sum赋值为0

FireQ 发表于 2020-4-6 20:57:53

BngThea 发表于 2020-4-6 20:55
外层循环每次都应该将sum赋值为0

int m,n;
    scanf("%d %d",&m,&n);
    int i,j,k;
    int sum=0;
    for(i=3;i<=m;i++){
      j=2;
      for(;j<i;j++){
            k=i%j;
            if(k==0){
                sum+=j;
            }
      }{:5_94:}
      if(sum==n){
            printf("%d",i);
      }sum=0;
    }
请问是这样吗 结果还是不对啊{:5_94:}

BngThea 发表于 2020-4-7 08:05:07

FireQ 发表于 2020-4-6 20:57
int m,n;
    scanf("%d %d",&m,&n);
    int i,j,k;


不是这样
是这样:
int sum;
for(i=3;i<=m;i++){
    sum=0;
    j=2;
页: [1]
查看完整版本: c语言基础题求助