借鉴左神的思路:
采用方法一:
根据四平方和定理:
1.一个数最多可以被4个平方和累加得到。
2.任何数消掉4的因子结论不变。
3.如果一个数模8等于7,则这个数一定被4个平方数累加得到
import java.util.*;
public class Main{
//四平方和定理
//任何数消掉4的因子结论不变
public static int process(int n){
while(n%4==0){
n/=4;
}
if(n%8==7)
return 4;
for(int i=0;i*i<=n;i++){
int b=(int)Math.sqrt(n-i*i);
if(i*i+b*b==n)
return ( i>0 && b>0 )?2:1;
}
return 3;
}
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
System.out.print(process(n));
}
}



京公网安备 11010502036488号