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

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,912 questions

51,844 answers

573 users

How to find all the strong numbers in given range with Scala

1 Answer

0 votes
// Strong numbers are the numbers that the sum of factorial of its digits 
// is equal to the original number
    
// 145 is a strong number: 1 + 24 + 120 = 145

import scala.annotation.tailrec

object StrongNumbers {
  def factorial(n: Int): Int = {
    @tailrec
    def factHelper(i: Int, acc: Int): Int = {
      if (i <= 1) acc
      else factHelper(i - 1, acc * i)
    }
    factHelper(n, 1)
  }

  def main(args: Array[String]): Unit = {
    for (n <- 1 to 1_000_000) {
      var tmp = n
      var sum = 0
      while (tmp != 0) {
        val reminder = tmp % 10
        sum += factorial(reminder)
        tmp /= 10
      }
      if (sum == n) {
        println(n)
      }
    }
  }
}


   
/*
           
run:
     
1
2
145
40585
       
*/

 



answered Sep 10, 2024 by avibootz

Related questions

1 answer 90 views
1 answer 161 views
1 answer 90 views
1 answer 2,168 views
1 answer 194 views
...