求一到以前的所有完数要求每行输出五个

img

#include<stdio.h>
int main() {
    int i, j, s, cnt = 0;
    for (i = 2; i <= 1000; i++) {
        s = 0;
        for (j = 1; j < i; j++) {
            if (i % j == 0) {
                s += j;
            }
        }
        if (s == i) {
            printf("%d ", i);
            cnt++;
            if (cnt % 5 == 0) {
                printf("\n");
            }
        }
    }
    return 0;
}


 觉得有用的话采纳一下哈


int wanshu(int n)
{
    int i,sum=0;
    for(i=1;i<n;i++)
    {
        if(n%i==0)
            sum+=i;
    }
    if(n==sum)
        return 1;
    return 0;
}

int main()
{
    int c=0;
    for(int i=2;i<=1000;++i)
    {
        if(wanshu(i)){
            printf("%d ",i);
            ++c;
            if(c%5 == 0)
                printf("\n");
        }
    }
    
    return 0;
}