import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
long[] sb=new long[500001];
int[] flag=new int[500001];
for(int k=1;k<=707;k++){ int q=k;
for(int l=q*q;l<500001;l+=q){
if(k==1)
sb[l]=1;
sb[l]*=q;
flag[l]++;
if(q!=l/q && q!=1){
sb[l]*=(l/q);
}
if(sb[l]>9999)
sb[l]%=10000;
}
}
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(br.readLine());
StringBuilder st=new StringBuilder();
while(n--!=0){
long count;
int k=Integer.parseInt(br.readLine());
if(k==1)
count=1;
else if(sb[k]==0&&flag[k]==1)
count=1;
else
{
count=sb[k];
}
if(count<10)
st.append("000");
if(count<100&&count>9)
st.append("00");
if(count>99&&count<1000)
st.append("0");
st.append(count).append("\n");
}
System.out.println(st);
}
}
I don’t really understand for the problem code D1 what is my above code not handling. Its getting a wrong answer not a TLE. So its fast enough but I’m not handling a certain case i suppose but I dunno what exactly. Can anyone help?