import java.util.*;
public class Main {
public static void main(String[] args) {
// write your code here
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int m=Integer.valueOf(sc.nextLine());
String[] str = new String[m];
for(int i=0;i
str[i] = sc.nextLine();
}
for(int i=0;i
System.out.println(isOne(str[i]));
}
}
}
public static boolean isOne(String str){
int sum=0;
int flag=0; //flag为0表示循环结束的标志
if(str.length()==1&&Integer.valueOf(str)!=1){
flag=1;//虽然是个位数但是不为1,仍旧需要继续计算
}else if(str.length()>1){
flag=1;
}
int times=0;//循环次数
while(flag==1){ //最终累计和的数位大于1,并且值不为1时
sum=0;
for(int i =0;i
int num = Integer.valueOf(str.charAt(i))-48;//ASCII码减48才是数字本身,48是0的ASCII码
sum=sum+num*num;
}
str=sum+"";
times++;
if(str.length()==1&&Integer.valueOf(str)==1){//最终结果为1,退出循环
flag=0;
}
if(times>20){//运行20次后还得不到结果则退出循环,这里取巧了
flag=0;
}
}
return sum==1?true:false;//数位为1时,值为1则返回true
}
}