AOJ1241 Lagrange's Four-Square Theorem
問題リンク Lagrange's Four-Square Theorem
- 概要
ラグランジュの4平方の定理は、全ての自然数は4つの平方数の和で表せるというものである。整数Nが与えられるので、Nを4つの平方数の和による表し方は何通りあるかを答えよ。
N < 2^15
- 解法
4重for文+枝刈りで何とか間に合います。
- ソース
import java.util.Scanner; //Lagrange's Four-Square Theorem public class AOJ1241 { void run(){ Scanner sc = new Scanner(System.in); for(;;){ int n = sc.nextInt(); if(n==0)break; int c = 0; for(int i=0;i<=n;i++){ if(n<i*i)break; for(int j=i;j<=n;j++){ if(n<i*i+j*j)break; for(int k=j;k<=n;k++){ if(n<i*i+j*j+k*k)break; for(int l=k;l<=n;l++){ if(n<i*i+j*j+k*k+l*l)break; c+=i*i+j*j+k*k+l*l==n?1:0; } } } } System.out.println(c); } } public static void main(String[] args) { new AOJ1241().run(); } }