首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在指定的间隔内找到数的除数?

如何在指定的间隔内找到数的除数?
EN

Stack Overflow用户
提问于 2016-03-01 15:59:25
回答 2查看 669关注 0票数 1

我想用with循环写一个简单的程序,用它你可以得到你输入的数字的所有除数。

例如,您需要所有数字30的除数,它们是: 1、2、3、5、6、10、15、30。现在,您希望程序只显示从5-10的间隔(例如)上的数字,即5、6和10。

到目前为止,我尝试的是让所有的除数器用于句子,但是没有间隔,所以我被塞了起来,不知道怎样才能在WHILE循环中做到这一点。

代码语言:javascript
复制
#include <iostream>
using namespace std;

int main() {
int input_number;

cin >> input_number;
cout << "All numbers are " << input_number << endl;

for (int i = 1; i <= input_number; i++) {
    if (input_number % i == 0) {
        cout << i << " ";
    }
}
return 0;
}

另外,谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-01 16:20:55

while循环中解决这个问题可能不像在for循环中那样简单(或蛮力)。

考虑使用while对循环的这种呈现

代码语言:javascript
复制
int input_number;

std::cin >> input_number;

int i = 1; //Start trying to divide the input number by 1
int limit = input_number; //Termination condition for the loop
while(i < limit) {
  if(input_number % i == 0) { //If divisible by i, both i and input_number/i are factors
    std::cout << i << " " << input_number / i << " ";
  }
  ++i; //Try dividing by the next integer
  /*Set the limit to our latest input_number/i so we don't get duplicate 
    results (e.g. (5, 6) and (6, 5) for input_number = 30)*/
  limit = input_number / i;
}

对于input_number = 30,这个循环只运行5个迭代,而for循环版本只运行30个迭代。

底线

for循环和while循环是可互换的,但是使用for循环处理问题可能比使用while循环处理问题更快,反之亦然,因为它们帮助您从不同的角度思考问题。

额外信息

for循环版本允许某些优化技术,例如并行累加器,这在while循环版本中是不可能的,因为每次迭代都依赖于前面的迭代。

票数 1
EN

Stack Overflow用户

发布于 2016-03-01 16:06:41

为什么要将其作为while循环来执行呢?for无疑是循环的正确选择。检查所有分区的工作非常清楚地通过以下方式完成:

代码语言:javascript
复制
for (int i = 1; i <= input_number; i++) { ... }

如果要在其中添加更窄的窗口,只需更改循环的边界:

代码语言:javascript
复制
for (int i = lower_bound; i <= upper_bound; i++) { ... }

将其转换为while循环只需将这些语句展开为:

代码语言:javascript
复制
int i = lower_bound;
while (i <= upper_bound) {
    ...
    i++;
}

但是这更容易出错--如果循环体中有一个continue,那么i就不会增加。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35727563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档