```
bool isHappy(int n) {
set<int> m;
if (n==1) return true;
if (m.find(n)!=m.end()) return false;
m.insert(n);
int temp=0;
while(n>0){
temp+=(n%10)*(n%10);
n/=10;
}
return isHappy(temp);
}
```