【问题描述】
10 是一个非常特殊的数,它可以表示成两个非负整数的平方和,10 = 3 * 3 + 1 * 1。
9 也是同样特殊的数,它可以表示成 9 = 3 * 3 + 0 * 0。
请问,在 1 到 2021 中有多少个这样的数?
请注意,有的数有多种表示方法,例如 25 = 5 * 5 + 0 * 0 = 3 * 3 + 4 * 4,在算答案时只算一次。
答案:624
public class C { public static void main(String[] args){ int count=0; int arr[] =new int[2022]; for (int i = 0; i < 2021; i++) { for (int j = 0; j < 2021; j++) { int sum=j*j+i*i; if(sum<=2021) arr[sum]=1; } } for(int i=1;i<=2021;i++) if (arr[i]==1) count++; System.out.println(count); } }