首页 > 其他分享 >[leetcode每日一题]4.5

[leetcode每日一题]4.5

时间:2023-04-05 10:01:36浏览次数:42  
标签:4.5 gcd 示例 int 每日 30 因子 数目 leetcode

2427. 公因子的数目

提示

简单

20

相关企业

给你两个正整数 a 和 b ,返回 a 和 b 的  因子的数目。

如果 x 可以同时整除 a 和 b ,则认为 x 是 a 和 b 的一个 公因子 。

 

示例 1:

输入:a = 12, b = 6
输出:4
解释:12 和 6 的公因子是 1、2、3、6 。

示例 2:

输入:a = 25, b = 30
输出:2
解释:25 和 30 的公因子是 1、5 。

 

提示:

  • 1 <= a, b <= 1000

Solution

1.直接遍历到gcd

2.用公式:公因子数目 = [leetcode每日一题]4.5_质因数,[leetcode每日一题]4.5_质因数_02为第i个质因数的数目

然后使用求质因数的方法求解即可。

class Solution:
    def commonFactors(self, a: int, b: int) -> int:
        n = gcd(a, b) # 待分解的数
        s = Counter()
        x = n
        i = 2
        while i <= x:
            while x%i == 0:
                s[i] += 1
                x //= i
            i += 1
        res = 1
        for v in s.values():
            res *= v + 1
        return res
            

3.遍历到[leetcode每日一题]4.5_质因数_03,因为因数是成对出现的,每次加2。

特判一下i*i=n的情况,此时只加1.

class Solution {
public:
    int commonFactors(int a, int b) {
        int ans = 0, g = __gcd(a, b);
        for(int i = 1; i <= g/i; i++) {
            if(a%i == 0 && b%i == 0) {
                ans++;
                if(i*i != g) ans++;
            }
        }
        return ans;
    }
};

标签:4.5,gcd,示例,int,每日,30,因子,数目,leetcode
From: https://blog.51cto.com/u_15763108/6170247

相关文章

  • 2023.4.5 网络最大流 Dinic算法
    网络最大流Dinic算法省选爆了qwq题目描述给出一个网络图,以及其源点和汇点,求出其网络最大流。网络流,就像水在一个水渠构成的网络中流一样,源点有无限的水,每条边有最大流量限制,求流到汇点的最大流量。更菜一点的EK算法自行了解,此处我们用dinic算法解决问题。这些网络流算法的......
  • [LeetCode] 2405. Optimal Partition of String
    Givenastring s,partitionthestringintooneormore substrings suchthatthecharactersineachsubstringare unique.Thatis,noletterappearsinasinglesubstringmorethan once.Return the minimum numberofsubstringsinsuchapartition.Not......
  • 每日总结2023/3.28(pycharm创建pp工程)
            defcalculate_fee(distance_travelled):return10+2*distance_travelledforxin[1.0,3.0,5.0,9.0,10.0,20.0]:print(calculate_fee(x))   ......
  • 每日总结 4.4
    今天进行了模拟售卖机的javaweb的简单编写,编写了大概的流程。代码量大概50行。<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%><%@pageimport="toolse.Tll"%><%@pageimport="java.util.*&......
  • 4.04每日总结
    以下是SQLSELECT语句使用WHERE子句从数据表中读取数据的通用语法:SELECTfield1,field2,...fieldNFROMtable_name1,table_name2...[WHEREcondition1[AND[OR]]condition2.....查询语句中你可以使用一个或者多个表,表之间使用逗号, 分割,并使用WHERE语句来设定查询条......
  • 每日总结2023/4.3(conda下的paddle安装)
        上一步我们·已经成功安装了conda,首先我们创建一个虚拟环境condacreate-npaddle22python=你的python版本我这里命名为了paddle22  安装完成后输入conda.batactivitepaddle22 进入我们的虚拟环境,根据个人提示,我的版本无法使用condaactivitepaddle22......
  • 每日总结2023/4/4(anaconda)
    今天学习安装了python的工具conda虚拟环境首先我安装了python3.7的版本Python3.7.0(32/64位)下载地址:链接:https://pan.baidu.com/s/1AScVSi0w6kwyVk0Kl0MMHQ密码:x9pahttps://mp.weixin.qq.com/s/qV9q9l37uoVYHMysDyMrww以上是python3.7的安装教程我使用的是pycharm直接安......
  • LeetCode——贪心算法总结
    贪心算法的主要的解题目的思路是: 860.柠檬水找零这道题算是生活中很常见的一道题,对于每一个顾客如果我们都有足够的零钱给他找零,那么就返回true,只要有一个顾客没有足够的零钱找给他就返回false。顾客只能有3种纸币,5元,10元,20元。我们要统计5元和10元的数量,20元的不需要统计,因为20......
  • #yyds干货盘点# LeetCode程序员面试金典:最接近的三数之和
    题目:给你一个长度为n的整数数组 nums 和一个目标值 target。请你从nums中选出三个整数,使它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。 示例1:输入:nums=[-1,2,1,-4],target=1输出:2解释:与target最接近的和是2(-1+2+1=2)......
  • #yyds干货盘点# LeetCode面试题:二进制求和
    1.简述:给你两个二进制字符串a和b,以二进制字符串的形式返回它们的和。 示例 1:输入:a="11",b="1"输出:"100"示例 2:输入:a="1010",b="1011"输出:"10101"2.代码实现:classSolution{publicStringaddBinary(Stringa,Stringb){......