Project Eulerの第4問は「数字の回文」。
A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
Find the largest palindrome made from the product of two 3-digit numbers.
回文は前後どちらから読んでも同じものになる。2桁の数の積で作られる最大の回文数は9009 = 91 × 99である。3桁の数の積で作られる最大の回文数は何か。
回文チェックを行うために、数を文字列に変換しています。そのせいでなかなか実行速度の遅いプログラムになってしまいました。また、数を大きな方から順にチェックすればいいのに、小さい方から順にチェックしているのも遅さの原因になっています。それでも結果が出ているので、まぁいいか、と。
maxnum = 0; for n1 = 100:998 for n2 = n1+1:999 num = n1 * n2; if num == str2double(fliplr(num2str(num))) if maxnum < num maxnum = num; end end end end disp(maxnum);