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.

- Prepare
- Algorithms
- Debugging
- Smart Number
- Discussions

# Smart Number

# Smart Number

#### Sort by

recency

#### |

#### 123 Discussions

#### |

Please Login in order to post a comment

Here is my c++ solution, you can watch video explanation here : https://youtu.be/Qs9rxqfzTs8

import java.io.

; import java.util.; import java.text.; import java.math.; import java.util.regex.*;public class Solution { public static boolean isSmartNumber(int num) { int val = (int) Math.sqrt(num);

if(num / val == 1) return true; return false; }

}

I didn't understand the approch they want to do. so I think in my way and make changes in a single line of that code. though my output and expected output are same. It's still showing wrong answer. So, I think it not only watching for the output but also watching for whitch line and what changed. Here is my first approch.

and here is the expected approch.

I'm doing this question as a part of Mountblue coding challenge. There is no "Reset" button on the editor. Even my output matches the expected output, it still gives "wrong answer"

And at the end of the code there is an "undefined" written in teh code editor

Explanation of what the algorithm is actually doing.

For any number there will always be a pair of factors, a and b, for that number. Example for 24: 1&24, 2&12, 3&8, 4&6.

Due to this, the result will by default be an even number. However the only exception is when a number has an integer square root, as the root is only counted once towards the factors.

So the problem finds the integer root and checks if that root squared is equal to the original number. If so, then the answer is YES.