当前位置: 首页 > news >正文

leetcode数论(2521. 数组乘积中的不同质因数数目)-质因素分解

前言

经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。

数论包含最大公约数(>=2个数)、最大公约数性质、最小公倍数、区间范围质因素计数(最下间隔)、质因素分解、判断质数、平方根、立方根、互质、同余等等。

描述

给你一个正整数数组 nums ,对 nums 所有元素求积之后,找出并返回乘积中 不同质因数 的数目。

注意:

  • 质数 是指大于 1 且仅能被 1 及自身整除的数字。
  • 如果 val2 / val1 是一个整数,则整数 val1 是另一个整数 val2 的一个因数。

示例 1:

输入:nums = [2,4,3,7,10,6]
输出:4
解释:
nums 中所有元素的乘积是:2 * 4 * 3 * 7 * 10 * 6 = 10080 = 25 * 32 * 5 * 7 。
共有 4 个不同的质因数,所以返回 4 。

示例 2:

输入:nums = [2,4,8,16]
输出:1
解释:
nums 中所有元素的乘积是:2 * 4 * 8 * 16 = 1024 = 210 。
共有 1 个不同的质因数,所以返回 1 。

提示:

  • 1 <= nums.length <= 104
  • 2 <= nums[i] <= 1000

实现原理与步骤

1.分析题干积的分解质因素和单个数字的质因素分解后的结果一致。

2.定义Set数据结果去重重复的质因素

3.枚举数组数据并分解质因素

4.分解质因素函数

实现代码

class Solution {public int distinctPrimeFactors(int[] nums) {Set<Integer> set=new HashSet();for(int i=0;i<nums.length;i++){getPrime(nums[i],set);}return set.size();}public void getPrime(int n,Set<Integer> set){while(n%2==0){set.add(2);n=n/2;}for(int i=3;i*i<=n;i+=2){while(n%i==0){set.add(i);n=n/i;}}if(n>2){set.add(n);}}
}

1.QA:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 垃圾收集器
  • 【Linux】(32)详解命名管道 | 日志管理 | 进程池2.0
  • 基于python的百度迁徙迁入、迁出数据分析(七)
  • C# 报表功能
  • Nginx隐藏欢迎页Welcome to CentOS
  • 百日筑基第四十五天-从JAVA8走到JAVA9
  • Spring的代理模式
  • Omit<T, K> 解释
  • 【电子数据取证】支持最新版微信、企业微信、钉钉等重点应用数据提取分析!
  • 网络安全知识讲解
  • C语言典型例题30
  • Vue 3 中,组件间传值有多种方式
  • 【知识】pytorch中的pinned memory和pageable memory
  • Android Fragment:详解,结合真实开发场景Navigation
  • Java开发笔记--通用基础数据校验的设计
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Next.js之基础概念(二)
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 入门级的git使用指北
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 学习HTTP相关知识笔记
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 树莓派用上kodexplorer也能玩成私有网盘
  • #565. 查找之大编号
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • #微信小程序(布局、渲染层基础知识)
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (4)Elastix图像配准:3D图像
  • (web自动化测试+python)1
  • (八)c52学习之旅-中断实验
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (三)uboot源码分析
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十五)使用Nexus创建Maven私服
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)jQuery 基础
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • . NET自动找可写目录
  • .net core 管理用户机密
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET 发展历程
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .NET的微型Web框架 Nancy
  • .net开发日常笔记(持续更新)
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • ?php echo ?,?php echo Hello world!;?
  • @antv/g6 业务场景:流程图
  • [ C++ ] STL---stack与queue
  • [Android]常见的数据传递方式