当前位置: 首页 > 知识库问答 >
问题:

确定数字在Ruby中是否为素数

田修为
2023-03-14

我试图编写一个方法,根据被计算的整数是否为素数返回true或false。下面的代码是我在阅读维基百科文章、之前的stackoverflow答案等的基础上拼凑而成的。目前,该程序对素数返回true,但不返回false。我希望在不使用任何内置函数的情况下执行此操作。我应该如何解决这个问题?

def prime?(integer)
 (2..integer - 1).each do |x|
  if (integer % x) == 0
   return false
  else
   return true
  end
end
end

共有2个答案

戚令秋
2023-03-14

另一种选择,从设置为true的变量开始。

def prime?(integer)
  (2..integer - 1).each {|x| return false if (integer % x) == 0 }
  true
end
步德宇
2023-03-14

你有一个逻辑问题。对于不能被2整除的任何数字,程序都返回true。因此,在循环完全执行后,只需放入返回true语句。

def prime?(integer)
    return false if integer < 2
    (2..integer - 1).each do |x|
        if (integer % x) == 0
            return false
        end
    end
    true
end
 类似资料:
  • 问题内容: 我正在尝试确定字符串数组中的特定项目是否为整数。 我是形式上的中缀表达式,然后尝试将结果数组拆分为两个数组;一个用于整数,一个用于运算符,同时丢弃括号和其他杂项。做到这一点的最佳方法是什么? 我以为我也许可以找到一种方法或某种方法,但是没有运气。 问题答案: 最幼稚的方式是遍历String并确保所有元素对于给定的基数都是有效数字。由于你必须至少查看一次每个元素,因此这将尽可能地提高效率

  • 问题内容: 好的,我的问题不是如何确定数字是否为质数,因为我想我已经知道了,但是更多的是如何使其正确显示。 这是我的代码: 现在我的问题是,如果数字最终等于9,它会说它是质数,而不是。我认为问题在于中断在一个循环后就停止了它,因此它不会递增变量p,因此仅测试除以2(我认为)。但是,如果我删除断点,它将在每次通过时打印出“和不是素数”,直到退出循环为止。不知道该怎么办。 问题答案: 查找数字是否为素

  • 问题内容: 我有一个Python字典,例如: 我想检查一个键是否在字典中。我很想知道以下两种情况中哪一种更为可取,为什么? 问题答案: if ‘name’ in mydict: 是首选的pythonic版本。不鼓励使用,并且在Python 3中已删除 此方法。

  • 问题内容: 我知道这个问题的变体以前经常被问过,但这 并不是 这些问题的 精确 重复。 我想检查a 是否为数字,如果是,我想将其存储为。有几种方法可以做到这一点,但是所有这些方法似乎都不适合我的目的。 一种解决方案是使用或类似方法。但是,如果存在逗号,这些解决方案将不起作用(因此,“ 1,234”将导致异常)。在使用这些技术之前,我当然可以删除所有逗号,但是这似乎在其他地区带来了很多问题。 我看了

  • 我正在通过反射动态实例化一个对象,方法是将字段名称与地图中类似的命名键进行匹配。其中一个字段是字符数组(char[]): 在plinko迭代器中,我为目标类上的类型编写了代码,例如。 例如,其中将是 如果field dClass类型是char[],要测试的表达式是什么?

  • 问题内容: 我需要确定JavaScript中的数组中是否已存在对象。 例如(dummycode): 现在,“carBrands”数组包含所有实例。我现在正在寻找一种快速解决方案,以检查car1,car2,car3或car4的实例是否已经在carBrands数组中。 例如: car1和car4包含相同的数据,但是不同的实例,应测试它们是否相等。 我是否在创建时向对象添加了哈希值?还是有更快的方法来用