c - 得到一个太少的除数

标签 c math counter division divider

这是一个计算一个数的除数的程序,但它给出的除数比该数字的实际除数少一个。

#include <stdio.h>

int i = 20;
int divisor;
int total;

int main()
{
    for (divisor = 1; divisor <= i; divisor++)
    {
        if ((i % divisor == 0) && (i != divisor))
        {
            total = total++;
        }
    }
    printf("%d %d\n", i, total);
    return 0;
}

数字 20 有 6 个除数,但程序说有 5 个除数。

最佳答案

&& (i != divisor)

表示20不会被视为除数。如果你想让它被考虑,放弃那部分代码,你会得到整套,{1, 2, 4, 5, 10, 20} .

即使您希望将数字计为除数,您仍然可以放弃该代码而只使用 <而不是 <=for声明。

和:

total = total++;

完全没有必要。它甚至可能是未定义的,我现在懒得去检查,这并不重要,因为没有人长期编写这样的代码:-)

使用其中之一:

total = total + 1;

或(更好):

total++;

关于c - 得到一个太少的除数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18423534/

相关文章:

c - 写入宽字符流

c - fscanf 读取和保存

math - 在球体上找点

python - python中大数的求和产生最大参数

javascript - 计数器:从特定日期到现在的时间(以秒为单位)

c - 我已经安装了 Cuda 6.5,但 OpenCV 给出了有关 Cuda 6.0 的错误

c++ - 信号的总能量

c# - C#创建文件夹时添加数字后缀

python - 如何计算列表中数字重复的次数(以及是否根据另一个列表中的值使用数字)?

c - 有针对 8086 的 C 编译器吗?