1 int sumFourDivisors(int* nums, int numsSize) 2 { 3 int sumfour = 0; 4 int incflag = 0; 5 6 for (int i = 0; i < numsSize; i++) 7 { 8 int flag = 0; 9 int cnt = 1; 10 int sqrroot = sqrt(nums[i]); 11 int sum = 1 + nums[i]; 12 for (int j = 2; j < sqrt(nums[i]); j++) 13 { 14 if (sqrroot * sqrroot == nums[i]) //如果是平方数直接跳出判断下一个数 15 { 16 break; 17 } 18 19 if (nums[i] % j == 0) 20 { 21 cnt++; 22 sum += (j + nums[i]/j); 23 } 24 25 if (cnt > 2) 26 { 27 break; 28 } 29 } 30 if (cnt != 2) 31 { 32 flag = 1; 33 } 34 35 if (flag == 0) 36 { 37 incflag++; 38 sumfour += sum; 39 } 40 } 41 42 if (incflag == 0) 43 return 0; 44 else 45 return sumfour; 46 }
原文:https://www.cnblogs.com/ZhengLijie/p/12545935.html