clear all time=cputime; n=10000000 no_mx = 1+(length(int2str(n))-1)*9^2; for i=1:no_mx sq = i; for z=1:1000 no = length(int2str(sq)); new = 0; for j=1:no d = rem(sq,10); sq = floor(sq/10); new = new + d^2; end sq = new; if (sq == 89) sqs(i)=89; break elseif (sq == 1) sqs(i)=1; break end end end ctr89=0; for k=1:n no = length(int2str(k)); new = 0; sq=k; for j=1:no d = rem(sq,10); sq = floor(sq/10); new = new + d^2; end val = sqs(new); if(val==89) ctr89=ctr89+1; end end disp('elapsed time\n') ttiime = cputime - time disp('89 numbers\n') ctr89
n = 10000000 elapsed time\n ttiime = 517.3906 89 numbers\n ctr89 = 8581146