用函数方法怎么解决呀


#include 
int main() {
    int i,j,max = 0,fcts,count = 0;
    for(i = 1; i <= 1000; ++i) {
        fcts = 0;
        for(j = 1; j <= i/2; ++j)
            if(i % j == 0) ++fcts;
        if(fcts % 2) {
            ++count;
        }
    }
    printf("1 -- 1000之间有奇数个因子的数有:%d个\n",count);
    return 0;
}

参考如下:

#include <stdio.h>

int countFactor4Odd(int n) 
{
    int i,j,max = 0,fcts,count = 0;
    for(i = 1; i <= n; ++i) {
        fcts = 0;
        for(j = 1; j <= i/2; ++j)
            if(i % j == 0) ++fcts;
        if(fcts % 2) {
            ++count;
        }
    }
    return count;
}

int main() {
    int n = 1000;
    printf("1 -- 1000之间有奇数个因子的数有:%d个\n",countFactor4Odd(n));
    return 0;
}