首页 > 其他分享 >6361.对角线上的质数-340

6361.对角线上的质数-340

时间:2023-04-09 20:57:03浏览次数:55  
标签:11 17 nums 质数 ans 340 对角线 6361

对角线上的质数

给你一个下标从 0 开始的二维整数数组 nums 。

返回位于 nums 至少一条 对角线 上的最大 质数 。如果任一对角线上均不存在质数,返回 0 。

注意:

如果某个整数大于 1 ,且不存在除 1 和自身之外的正整数因子,则认为该整数是一个质数。
如果存在整数 i ,使得 nums[i][i] = val 或者 nums[i][nums.length - i - 1]= val ,则认为整数 val 位于 nums 的一条对角线上。

在上图中,一条对角线是 [1,5,9] ,而另一条对角线是 [3,5,7] 。

示例 1:

输入:nums = [[1,2,3],[5,6,7],[9,10,11]]
输出:11
解释:数字 1、3、6、9 和 11 是所有 "位于至少一条对角线上" 的数字。由于 11 是最大的质数,故返回 11 。
示例 2:

输入:nums = [[1,2,3],[5,17,7],[9,11,10]]
输出:17
解释:数字 1、3、9、10 和 17 是所有满足"位于至少一条对角线上"的数字。由于 17 是最大的质数,故返回 17 。

提示:

1 <= nums.length <= 300
nums.length == numsi.length
\(1 <= nums[i][j] <= 4*10^6\)

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/prime-in-diagonal
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:试除法判断质数

在做这道题目的时候明显感觉自己对试除法判断质数的不熟悉:

  1. 首先要对1 做特判
  2. 约数是成对出现的i 和n / i,必然是一个小于sqrt(n),所以遍历到sqrt(n)即可,由于sqrt(n)计算速度慢,一般采用i * i <= n 做判断,也就是i <= n / i;

code

class Solution {
public:
    //i x/i 
    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;
        
    }
    
    
    int diagonalPrime(vector<vector<int>>& nums) {
        int n = nums.size();
        
        
        int ans = 0;
        int r = 0,c = 0;
        while(r < n && c < n)
        {
            if(is_prime(nums[r][c])) ans = max(ans,nums[r][c]);
            r ++;
            c ++;
        }
        
        r = n -1,c = 0;
        
        while(r >= 0 && c < n)
        {
            if(is_prime(nums[r][c])) ans = max(ans,nums[r][c]);
            r --;
            c ++;
        }
        
        return ans;
    
    }
};

标签:11,17,nums,质数,ans,340,对角线,6361
From: https://www.cnblogs.com/huangxk23/p/17301015.html

相关文章

  • 6360.等值距离和-340
    等值距离和给你一个下标从0开始的整数数组nums。现有一个长度等于nums.length的数组arr。对于满足nums[j]==nums[i]且j!=i的所有j,arr[i]等于所有|i-j|之和。如果不存在这样的j,则令arr[i]等于0。返回数组arr。示例1:输入:nums=[1,3,1,1,2]输......
  • CH340串口问题
    ch340的串口还是要慎用啊,有些盗版的波特率上去了会出现乱码的问题,下面是我用的两个ch340的串口当波特率设置到了1500000的时候,左边的这个ch340就会一直乱码,右边的是正常的,需要注意,一开始还不信,后面用逻辑分析仪抓了一下数据,才确认是ch340的问题......
  • [loj3408]lancllords
    考虑归并排序,问题即如何合并两个序列\(A,B\)不妨假设\(|A|>|B|\),将\(A\)按下标奇偶性划分为\(A_{0}\)和\(A_{1}\)将\(A_{0}\)与\(B\)归并,得到序列\(C\)对于\(A_{1}\)中的元素,仅需与(\(C\)中)\(A_{0}\)中相邻两数间的\(B\)中元素比较比较次数为\(|B|\),用莫队实现,操作次数为......
  • 质数和分解
    #include<iostream>#include<string.h>usingnamespacestd;constintN=210;intm;intf[N][N];intprimes[N];intcnt=1;boolst[N];voidinit(){for(inti=2;i<=200;i++){if(!st[i])primes[cnt++]=i;for(intj=1;......
  • 质数筛
    内容来自b站importjava.util.Arrays;importjava.util.Scanner;publicclass质数筛{ staticintN=100000010; staticboolean[]vis=newboolean[N];//划掉合数 staticint[]prim=newint[N];//记录质数 staticintcnt=0;//质数个数 publicstat......
  • [安乐椅#15] 杨辉三角质数分布性质
    性质内容在杨辉三角中,质数仅存在于第2层。性质证明\(C_n^m\)\frac{0}12345670|1|2|3|4|5|6|7|......
  • 洛谷P1217 [USACO1.5]回文质数 Prime Palindromes
    #include<bits/stdc++.h>usingnamespacestd;inta,b;boolzs(intx){if(x%2>0){for(inti=3;i<x;i+=2)if(x%i==0)returnfalse;returntrue;}elsereturnfalse;}boolhws(intx......
  • ISYS3401 IT Evaluation
    ISYS3401ISYS3401ITEvaluation(2023)IndividualAssignment1(30%)ThisITEvaluationassignmentfollowsa3-phaseassessmentplanintroducedinlecture5.The......
  • 3792. 质数问题(质数筛)
    https://www.acwing.com/problem/content/3795题目要求一个数是质数且这个数能被两个相邻质数+1之和得到并且满足这样的条件还要大于k次主要难点就是读题意读懂题意后......
  • 数论基础1(质数判断,分解质因数,筛法,优化筛法,约数,约数个数,约数之和)
    模板://质数判定--试除法//朴素O(N)boolis_prime(intn){ if(n<2)returnfalse; for(inti=2;i<n;i++) { if(n%i==0)returnfalse; } returntrue;}//......