对角线nums[i][i]
,反对角线nums[i][nums.size() - i - 1]
试除法判断质数
bool is_prime(int x)
{
if (x < 2) return false;
for (int i = 2; i <= x / i; i ++ )
if (x % i == 0)
return false;
return true;
}
遍历一遍,更新答案ans
C++ 代码
class Solution {
public:
int diagonalPrime(vector<vector<int>>& nums) {
int flag = 0;
int ans =0;
for(int i = 0;i<nums.size();i++) {
if(is_prime(nums[i][i]) && nums[i][i]>ans)
ans = nums[i][i];
if(is_prime(nums[i][nums.size() - i - 1]) && nums[i][nums.size() - i - 1]>ans)
ans = nums[i][nums.size() - i - 1];
}
return ans;
}
bool is_prime(int x)
{
if (x < 2) return false;
for (int i = 2; i <= x / i; i ++ )
if (x % i == 0)
return false;
return true;
}
};