LeetCode.每日一题 2427. 公因子的数目

 

Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法......感兴趣就关注我吧!你定不会失望。

🌈个人主页:主页链接

🌈算法专栏:专栏链接

     我会一直往里填充内容哒!

🌈LeetCode专栏:专栏链接 

    目前在刷初级算法的LeetBook 。若每日一题当中有力所能及的题目,也会当天做完发出

🌈代码仓库:Gitee链接

🌈点击关注=收获更多优质内容🌈

目录

题目:公因子的数目

题解:

代码实现:

 公约数的个数与公约数之和:

完结撒花:

 

题目:公因子的数目

题解:

是一题简单题,我们借此来复习下数论里的求最大公约数。

先给出一种解法:暴力枚举

将一个数的所有约数枚举出来,存入数组,之后再用数组中的每一个数,去看看能不能被第二个数整除,若能则答案++

代码实现:

class Solution {
public:
    int commonFactors(int a, int b) {
        vector<int>ans;
        int res=0;
        for(int i=2;i<=a;i++)
        {
            if(a%i==0)ans.push_back(i);
        }
        for(int i=0;i<ans.size();i++)
        {
            if(b%ans[i]==0)res++;
        }   
        return res+1;
    }
};

 还有一种方法,即寻找最大公约数,因为若想成为答案的一部分,每个数的约数一定为其最大公约数的因子.所以就转变成了求最大公约数的约数个数问题.

先来看看如何求最大公约数:

int gcd(int a,int b)
    {
        int c=1;
        while(c)
        {
            c=a%b;
            a=b;
            b=c;
        }
        return a;
    }

求出最大公约数后,就寻找其约数个数

这里简化了一下遍历范围,举一个简单的例子:2*3=6 所以2 3都为6的因子,他们都是成对出现的,所以只需要遍历到2的这一半就可以了.2*2!=6 说明其还有另一半,直接答案++即可.

int commonFactors(int a, int b) {
        int d=gcd(a, b);
        int ans=0;
        for(int i=1;i<=d/i;i++)
        {
            if(d%i==0)
            {
                ans++;
                if(i*i!=d)ans++;
            }
        }
        return ans;
    }

 公约数的个数与公约数之和:

这里简单复习一下,公约数的个数可以由质因数其指数个数+1再相乘得到

 

                              公约数之和可以由质因数每个指数个数相加再相乘得到

                               质因数可以由此方法得到:先判断这个数能否 被i整除,若能就一直除到不能被整除为止,记录次数.若最后x>1,则说明还有另一半没有被找到,则这个另一半即为x

#include<iostream>
using namespace std;
void divide(int x)
{
 
    for(int i=2;i<=x/i;i++)
        if(x%i==0)
        {
            int s=0;
            while(x%i==0)
            {
                x/=i;
                s++;
            }
            printf("%d %d\n",i,s);
        }
        if(x>1)printf("%d %d\n",x,1);
        puts("");
        return ;
}
int main()
{
    int n=0;
    cin>>n;
    while(n--)
    {
        int x;
        cin>>x;
        divide(x);
    }
    return 0;
}

完结撒花:

🌈本篇博客的内容【LeetCode.每日一题 2427. 公因子的数目】已经结束。

🌈若对你有些许帮助,可以点赞、关注、评论支持下博主,你的支持将是我前进路上最大的动力。

🌈若以上内容有任何问题,欢迎在评论区指出。若对以上内容有任何不解,都可私信评论询问。

🌈诸君,山顶见!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/6563.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ModuleNotFoundError: No module named ‘gdal‘

目录 一、问题描述 二、解决方法 一、问题描述 在win系统下使用gdal包的时候&#xff0c;使用下面代码pip安装&#xff1a; conda install glob -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ 安装过程中没有报错&#xff0c;但是 import 的时候还是报错了…

Vicuna:与ChatGPT 性能最相匹配的开源模型

Vicuna (由stable diffusion 2.1生成)前言最近由UC Berkeley、CMU、Stanford, 和 UC San Diego的研究人员创建的 Vicuna-13B&#xff0c;通过在 ShareGPT 收集的用户共享对话数据中微调 LLaMA获得。其中使用 GPT-4 进行评估&#xff0c;发现Vicuna-13B 的性能达到了ChatGPT 和 …

脑外伤最怕后遗症?做好这6大家庭护理措施,防止后遗症

脑外伤是生活中常见的一种情况&#xff0c;主要也就是由于意外或者是其他原因造成的脑部外伤。脑外伤也属于神经系统疾病的一种&#xff0c;最主要是因为对脑部的组织细胞以及神经造成了巨大伤害&#xff0c;从而引起的一系列不良症状的疾病&#xff0c;这种时候也就需要做护理…

憨批的语义分割重制版11——Keras 搭建自己的HRNetV2语义分割平台

憨批的语义分割重制版11——Keras 搭建自己的HRNetV2语义分割平台学习前言什么是HRNetV2模型代码下载HRNetV2实现思路一、预测部分1、主干网络介绍a、Section-1b、Section-2c、Section-3d、Section-42、特征整合部分3、利用特征获得预测结果二、训练部分1、训练文件详解2、LOSS…

python123

文章目录温度转换异常处理百分制成绩转换五分制F正整数AB奇偶求和判断数据类型温度转换异常处理 描述‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪…

数组切分 蓝桥杯 DFS DP

⭐ 数组切分 输入 4 1 3 2 4输出 5⭐ 区间最大值 - 区间最小值 区间长度&#xff1a;说明该区间为连续的自然数 &#x1f920; 暴馊dfs &#xff08;过 50 % 的案例&#xff09; import java.util.*;public class Main {static int mod 1000000007, n;static int res 0…

OBCP第七章 OB迁移-备份恢复技术架构及操作方法

为什么需要备份恢复 为满足监管要求 防止管理员误操作后&#xff0c;错误数据同步到所有副本&#xff0c;导致数据无法恢复 防止数据库因各种故障而造成数据丢失&#xff0c;降低灾难性数据丢失的风险&#xff0c;从而达到灾难恢复的目的 硬盘驱动器损坏 黑客攻击、病毒 …

九龙证券|券商积极布局A股 新进171家公司前十大流通股东

随着上市公司2022年年报连续出炉&#xff0c;券商自营盘的操作途径同步浮现。Choice数据显示&#xff0c;到4月4日&#xff0c;券商新进171家上市公司前十大流通股东之列&#xff0c;有48家上市公司获加仓。从装备方向来看&#xff0c;制造业、非银金融、电子、电力设备等板块依…

【电源专题】充电过程中指示灯怎么就红绿闪烁或是同时亮

本案例是在工作中发现的,同事测试的时候发现产品充电时指示灯红绿闪烁。正常的表现应该是充电为红灯,充满为绿灯。怎么会出现红绿闪烁的情况呢? 首先前提条件是产品已经量产,并且出货数量巨大,因此是否为个例性问题?通过排查后发现,最终现象是跟着充电器走,使用正常产品…

chatGPT的未来应用有哪些-ChatGPT对未来工作的影响

ChatGPT对未来的影响 ChatGPT 是一种先进的自然语言处理技术&#xff0c;能够处理和理解大量的自然语言数据和信息&#xff0c;具有广泛的应用价值。以下是 ChatGPT 可能对未来的影响&#xff1a; 改变人与计算机的交互方式。ChatGPT 的普及应用&#xff0c;将使得人们可以通过…

聊聊移动端动态化的由来和各流派的优缺点

移动端动态化的由来 “动态化”并不是最近几年才产生的名词&#xff0c;而是从从互联网诞生的初期&#xff0c;这个词就已经出现了。大家所认知的早期互联网&#xff0c;其实就是各种各类的“动态网站”&#xff0c;内容数据和页面外观都不是固定的&#xff0c;都是随着服务器…

命名空间和程序集

目录 一、什么是命名空间 1. 命名空间的作用 2. 命名空间跨文件伸展 3.嵌套命名空间 二、using指令 1. using命名空间指令 2. using别名指令 三、程序集的结构 1. 程序集标识符 2.强命名程序集 一、什么是命名空间 1. 命名空间的作用 命名空间是共享命名空间名的一组…

kotlin协程原理分析

使用kotlin的协程一段时间后&#xff0c;我们或多或少会产生一些疑问&#xff1a;协程和线程有什么关系&#xff1f;协程之间到底怎么来回传递的&#xff1f;协程真的比线程&#xff08;池&#xff09;好吗&#xff1f; 初窥 首先我们从最简单协程开始&#xff1a; fun main…

XXX客户挖矿应急响应

此次为真实客户案例! 0x01 前言: 同事反馈,有客户设备告警连接挖矿域名。 0x02 事件分析: 登录设备TOP: CPU巨高!!查。 定位进程: 通过netstat -anop 查看可疑进程: 通过netstat -anop | grep 28564 查看对应进程:

初始Vue【Vue】

Vue 简介 1. Vue是什么&#xff1f; 一套用于构建用户界面的渐进式JavaScript框架 渐进式&#xff1a;Vue可以自底向上逐层的应用 简单应用&#xff1a;只需一个轻量小巧的核心库 复杂应用&#xff1a;可以引入各式各样的Vue插件 2. Vue 的特点 采用组件化的模式&#xff0c…

JVM七大垃圾回收器上篇Serial、ParNeW、Parallel Scavenge、 Serial Old、 Parallel Old、 CMS、 G1

GC逻辑分类 垃圾收集器没有在规范中进行过多的规定&#xff0c;可以由不同的厂商、不同版本的JVM来实现。 由于JDK的版本处于高速迭代过程中&#xff0c;因此Java发展至今已经衍生了众多的GC版本。 从不同角度分析垃圾收集器&#xff0c;可以将GC分为不同的类型。 按线程数…

Linux学习记录——십칠 基础IO(2)

文章目录理解文件系统1、了解磁盘物理结构2、逻辑抽象3、文件系统如何理解文件的增删查改4、软硬连接1、软链接2、硬链接3、继续深入理解文件系统 之前已经知道&#xff0c;文件在没被打开的时候&#xff0c;会存放在磁盘等外设中&#xff0c;这篇的重点就是这些没被打开的文件…

JSON 数据解析的方法

JSON 数据解析 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式&#xff0c;但是也使用了类似于C语言家族的习惯&#xff08;包括C、C、C#、Java、JavaScript、Perl、Python等&#xff09;。这…

百度文心一言与Notion的比较(机器人通信的例子)

文心一言出来有一段时间了&#xff0c;也经常会去问问&#xff0c;感觉对于简单的语义理解还是可以&#xff0c;其答案对于一些常见的常识等还是可以给出不错的答案&#xff0c;但是在数学与代码等方面基本上很差&#xff0c;基本的贷款利率、微积分、没有理解语义的代码等都是…

CSDN——Markdown编辑器——快捷键

CSDN——Markdown编辑器——快捷键CSDN——Markdown编辑器——快捷键如下4个&#xff0c;同 word下面的需要加 Shift标题 Ctrl /⌘Shift H // headlineF 和 G在键盘相邻快捷键 的 图标![在这里插入图片描述](https://img-blog.csdnimg.cn/dc02416cebd34c428de54aba5e66c40a.png…
最新文章