すみません、非負数が条件でした。
負の数を含めるとすごい数になってしまう。