def is_happy(n):
seen=set()
while n!=1:
if n in seen: return False
seen.add(n)
n=sum(int(d)**2 for d in str(n))
return True
public boolean isHappy(int n){
Set<Integer> seen=new HashSet<>();
while(n!=1){
if(seen.contains(n)) return false;
seen.add(n);
int s=0;
while(n>0){int d=n%10;s+=d*d;n/=10;}
n=s;
} return true;
}
Python generator sum vs Java math loop. str() for digit iteration.
def is_happy(n):
seen=set()
while n!=1:
if n in seen: return False
seen.add(n)
n=sum(int(d)**2 for d in str(n))
return True
public boolean isHappy(int n){
Set<Integer> seen=new HashSet<>();
while(n!=1){
if(seen.contains(n)) return false;
seen.add(n);
int s=0;
while(n>0){int d=n%10;s+=d*d;n/=10;}
n=s;
} return true;
}
1. Track seen numbers 2. Squared digit sum 3. Cycle: false 1: true