0

我正在使用 Dev C++,程序运行没有错误。我遇到的问题是它重复了以前周期的数字,我没有有效的方法来计算这些数字中有多少是完美的、友好的或只是善于交际的。
这是主程序:

int main()
{
    int per = 0, cyc = 0, ami = 0, rep = 0;
    for(int n = 2; n < MAXNUM; n++){
        int f = 0;
        for(int c = 1; !f  && c <= MAXCYC; c++){
            rep = c;
            long a = n;
            while(rep--) a = divs(a);
            rep = c;

            if(n == a ){
                printf("Cycle of length %d: %d", c, n);
                while(rep --){
                    a = divs(a);
                    printf(" %ld", a);
                    cyc++;
                }
                printf("\n");
                f = 1;
            }
        }
    }

    printf("\nFound %d cycles including \n", cyc);
    printf("%d cycles with perfect numbers and \n", per);
    printf("%d cycles with amicable numbers\n", ami);

    return 0;
}

我怎样才能使它不会重复以前周期的数字作为新周期的起点,同时让我的 per 和 ami 计数器上升?我也不能使用数组,因为我不允许这样做。

4

0 回答 0