---- *Problem 6 「二乗和の差」 † http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%206 最初の10個の自然数について, その二乗の和は, 1^2 + 2^2 + ... + 10^2 = 385 最初の10個の自然数について, その和の二乗は, (1 + 2 + ... + 10)^2 = 3025 これらの数の差は 3025 - 385 = 2640 となる. 同様にして, 最初の100個の自然数について二乗の和と和の二乗の差を求めよ. ---- 高校数学の公式によれば - 1^2 + 2^2 + ... + n^2=n*(n+1)(2n+1)/6 - 1+2+,,,+n=n*(n+1)/2 です。 - (1+2+,,,+n)^2=(n*(n+1)/2)^2ですので よって答えは ans=(n*(n+1)/2)^2-n*(n+1)(2n+1)/6 n=100を代入して ans=5050^2-100*101*201/6 ですが計算量も小さいので単純に足し合わせてもよいでしょう。 1^2 + 2^2 + ... + n^2=n*(n+1)(2n+1)/6に関する資料 http://www.geocities.jp/phaosmath/int1/sum_sq.htm