Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Create your online store today with Shopify

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Disclosure: My content contains affiliate links.

43,041 questions

55,898 answers

573 users

How to check whether a number is a perfect number in Ruby

1 Answer

0 votes
# If the sum of all factors of a number is equal to the number, then the number is perfect
 
# Factors of a number are numbers that divide the number evenly
    
# 6
# factors = 1, 2, 3
# 1 + 2 + 3 = 6

def perfect_number?(n)
  return false if n < 2

  sum = 1
  limit = Math.sqrt(n).to_i

  (2..limit).each do |i|
    if n % i == 0
      sum += i
      pair = n / i
      sum += pair if pair != i
    end
  end

  sum == n
end


(1..10_000).each do |num|
  puts "#{num} is perfect" if perfect_number?(num)
end


 
=begin
run
 
6 is perfect
28 is perfect
496 is perfect
8128 is perfect
 
=end
 

 



answered Jun 19 by avibootz
...