/* * @LastEditTime: 2026-10-11 09:21:22 */ classSolution { public: intsumOfSquares(vector<int>& nums){ int ans = 0; size_t n = nums.size(); size_t root = sqrt(n); for (int i = 1; i <= root; i++) { if (n % i == 0) { ans += nums[i - 1] * nums[i - 1] + nums[n / i - 1] * nums[n / i - 1]; } } if (root * root == n) { ans -= nums[root - 1] * nums[root - 1]; } return ans; } };
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
''' LastEditTime: 2026-10-11 09:32:05 ''' from typing importList from math import isqrt
classSolution: defsumOfSquares(self, nums: List[int]) -> int: ans = 0 for i inrange(1, isqrt(len(nums)) + 1): iflen(nums) % i == 0: ans += nums[i - 1] * nums[i - 1] if i * i != len(nums): ans += nums[len(nums) // i - 1] * nums[len(nums) // i - 1] return ans
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/* * @LastEditTime: 2026-10-11 09:27:59 */ classSolution { publicintsumOfSquares(int[] nums) { intans=0; for (inti=1, n = nums.length, root = (int)Math.sqrt(n); i <= root; i++) { if (n % i == 0) { ans += nums[i - 1] * nums[i - 1]; if (i * i != n) { ans += nums[n / i - 1] * nums[n / i - 1]; } } } return ans; } }
Go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/* * @LastEditTime: 2026-10-11 09:23:09 */ package main
funcsumOfSquares(nums []int) (ans int) { n := len(nums) for i := 1; i * i <= n; i++ { if n % i == 0 { ans += nums[i - 1] * nums[i - 1]; if i * i != n { ans += nums[n / i - 1] * nums[n / i - 1]; } } } return }
Rust
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/* * @LastEditTime: 2026-10-11 09:37:56 */ implSolution { pubfnsum_of_squares(nums: Vec<i32>) ->i32 { letmut ans = 0; letn = nums.len(); letroot = (n asf64).sqrt() asusize; foriin1..=root { if n % i == 0 { ans += nums[i - 1] * nums[i - 1]; if i * i != n { ans += nums[n / i - 1] * nums[n / i - 1]; } } } ans } }