ruby入门算法: 输出小于n 的所有的质数

在 Ruby 中定义类

在 Ruby 中,类总是以关键字 class 开始,后跟类的名称。类名的首字母应该大写。类 Customer 如下所示:

class Customer
end

Ruby 类中的变量

Ruby 提供了四种类型的变量:

  • 局部变量:局部变量是在方法中定义的变量。局部变量在方法外是不可用的。在后续的章节中,您将看到有关方法的更多细节。局部变量以小写字母或 _ 开始。
  • 实例变量:实例变量可以跨任何特定的实例或对象中的方法使用。这意味着,实例变量可以从对象到对象的改变。实例变量在变量名之前放置符号(@)。
  • 类变量:类变量可以跨不同的对象使用。类变量属于类,且是类的一个属性。类变量在变量名之前放置符号(@@)。
  • 全局变量:类变量不能跨类使用。如果想要有一个可以跨类使用的变量,需要定义全局变量。全局变量总是以美元符号($)开始。

实例

使用类变量 @@no_of_customers,您可以判断被创建的对象数量,这样可以确定客户数量。

class Customer
   @@no_of_customers=0
end

质数: 只能被1 或者 自身整除。

需要实现这样的函数:

print_prime(n)      n 为最大值。 打印 0 ~ n 之间的所有质数。 

例如:

print_prime(10) # => 1,2,3,5,7  (多行输出就行,不用非得同行输出用逗号连接)
print_prime(20) # => 1,2,3,5,7,11,13,17,19

首先需要知道余数这个定义,知道质数的性质,也就是只能被1和自身整除。

 那么,可以根据学过的语法进行写,使用puts法印进程让自己看到每一步的代码有没有真正起作用,代码如下图,进行运行ruby zhishu.rb

 

 

 

def printZhishu(n)

  # 只能被1 和自身 整除的数, 就是质数
  # 从1 到 n , 做一个遍历。 i
  i = 1 

  result = nil 

  loop do
    puts "=== i : #{i}"

    # 对每个i 都进行取余操作。如果余数是0 && (i != 1 || i != n ),那么该数n 就很可能不是质数
    if n % i == 0 && i != 1 && i != n
      puts "=== is not prime number, n: #{n}, i: #{i}"
      result = false
      break
    end 

    if i >= n
      result = true
      break
    end
    i = i + 1 
  end 
  return result
end

puts printZhishu(97)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值