We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
  • HackerRank Home

    HackerRank

  • |
  • Prepare
  • Certify
  • Compete
  • Hiring developers?
  1. Prepare
  2. Algorithms
  3. Dynamic Programming
  4. Red John is Back
  5. Discussions

Red John is Back

Problem
Submissions
Leaderboard
Discussions
Editorial

    You are viewing a single comment's thread. Return to all comments →

  • cagils
    10 months ago+ 0 comments

    js

    function redJohn(n) {
        const r = x => Math.round(x)
        const s = x => Math.sqrt(x)
        
        const fact = (n) => n <= 1 ? 1 : fact(n - 1) * n
        
        const prime = (n) => { 
            if (n % 2 == 0 && n > 2) 
                return false
            for (let i=3; i <= r(s(n)); i+=2)
                if (n % i == 0)
                    return false
            return true
        }
        
        let M = 0
        for (let i=0; i <= n/4; i++) {
            M += r(fact(n-i*3) / (fact(i) * fact(n-i*4)))
        }
        let res = 0
        for (let i=2; i <= M; i++)
            if (prime(i))
                res++
        return res
    }
    
    0|
    Permalink
  • Blog
  • Scoring
  • Environment
  • FAQ
  • About Us
  • Support
  • Careers
  • Terms Of Service
  • Privacy Policy