Composite numbers with digit sum 1 | Function that returns true if number n is a composite number ; Corner cases ; This is checked so that we can skip middle five numbers in below loop ; Function that returns true if the eventual digit sum of number nm is 1 ; Loop till the sum is not single digit number ; Intitialize the sum as zero ; Find the sum of digits ; If sum is eventually 1 ; Function to print the required numbers from the given range ; If i is one of the required numbers ; Driver code
function isComposite ( n ) { if ( n <= 1 ) return false ; if ( n <= 3 ) return false ; if ( n % 2 == 0 n % 3 == 0 ) return true ; for ( let i = 5 ; i * i <= n ; i = i + 6 ) if ( n % i == 0 || n % ( i + 2 ) == 0 ) return true ; return false ; } function isDigitSumOne ( nm ) { while ( nm > 9 ) { let sum_digit = 0 ; while ( nm > 0 ) { let digit = nm % 10 ; sum_digit = sum_digit + digit ; nm = Math . floor ( nm / 10 ) ; } nm = sum_digit ; } if ( nm == 1 ) return true ; else return false ; } function printValidNums ( l , r ) { for ( let i = l ; i <= r ; i ++ ) { if ( isComposite ( i ) && isDigitSumOne ( i ) ) document . write ( i + " " ) ; } } let l = 10 , r = 100 ; printValidNums ( l , r ) ;