约数性质以及辗转相除法

文章目录

  • AcWing 869. 试除法求约数
    • 题目链接
    • 思路
    • CODE
  • AcWing 870. 约数个数
    • 题目链接
    • 思路
    • CODE
  • AcWing 871. 约数之和
    • 题目链接
    • 思路
    • CODE
  • AcWing 872. 最大公约数
    • 题目链接
    • 思路
    • CODE



AcWing 869. 试除法求约数

题目链接

https://www.acwing.com/activity/content/problem/content/938/

在这里插入图片描述

思路

基于算术基本定理,从最小质数开始往上除,直到不含这个因数,而和数都是由比它小的质数相乘得来,所以所有约束都是质数。

CODE

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>using namespace std;int n;vector<int> get_divided(int n){vector<int> res;for(int i = 1; i <= n / i; ++i){if(n % i == 0){res.push_back(i);if(i != n / i) res.push_back(n / i);}}sort(res.begin(), res.end());return res;
}int main()
{cin >> n;while (n -- ){int a;scanf("%d", &a);auto res = get_divided(a);for(auto t : res) cout << t << ' ';puts("");}
}

AcWing 870. 约数个数

题目链接

https://www.acwing.com/activity/content/problem/content/939/

思路

还是基于算术基本定理,一个数可以分解为唯一因式: K = p 1 a 1 + p 2 a 2 + . . . + p i a i K = p1^{a1} + p2^{a2} + ... + pi^{ai} K=p1a1+p2a2+...+piai
那么约数的个数就是公式: ( a 1 + 1 ) ( a 2 + 1 ) . . . ( a i + 1 ) (a1 + 1)(a2 + 1)...(ai + 1) (a1+1)(a2+1)...(ai+1)

CODE

#include<vector>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <unordered_map>using namespace std;typedef long long ll;const int mod = 1e9 + 7;
int n;int main()
{cin >> n;unordered_map<int, int> primes;while (n -- ){int a;scanf("%d", &a);for(int i = 2; i <= a / i; ++i){while(a % i == 0){a /= i;primes[i]++;}}if(a > 1) primes[a]++;}ll res = 1;for(auto t : primes) res = res * (t.second + 1) % mod;cout << res << endl;
}

AcWing 871. 约数之和

题目链接

https://www.acwing.com/activity/content/problem/content/940/

思路

还是基于算术基本定理: K = p 1 a 1 + p 2 a 2 + . . . + p i a i K = p1^{a1} + p2^{a2} + ... + pi^{ai} K=p1a1+p2a2+...+piai由这个因式我们可以得到以下公式: N = ( p 1 0 + p 1 1 + . . . + p 1 a 1 ) ( p 2 0 + p 2 1 + . . . p 2 a 2 ) . . . ( p i 0 + p i 1 + . . . + p i a i ) N = (p1^0 + p1^1 +...+ p1^{a1})(p2^0 + p2^1 + ... p2 ^ {a2})...(pi ^ 0 + pi ^1 + ...+ pi^{ai}) N=(p10+p11+...+p1a1)(p20+p21+...p2a2)...(pi0+pi1+...+piai)这个公式展开就是每项约数的和。

详细推导可以参考以下视频:约数个数与约数之和

CODE

#include <iostream>
#include <cstring>
#include <algorithm>
#include <unordered_map>using namespace std;typedef long long ll;const int mod = 1e9 + 7;
int n;int main()
{cin >> n;unordered_map<int, int> primes;while (n -- ){int a;scanf("%d", &a);for(int i = 2; i <= a / i; ++i){while(a % i == 0){a /= i;primes[i]++;}}if(a > 1) primes[a]++;}ll ans = 1;for(auto p : primes){ll a = p.first, b = p.second;ll res = 1;while(b--) res = (res * a + 1) % mod;ans = ans * res % mod;}cout << ans << endl;
}

AcWing 872. 最大公约数

题目链接

https://www.acwing.com/activity/content/problem/content/941/

思路

辗转相除法
具体证明请看 VCR

CODE

#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;int gcd(int a, int b){return b ? gcd(b, a % b) : a;
}int main()
{int n;cin >> n;while(n--){int a, b;scanf("%d%d", &a, &b);cout << gcd(a, b) << endl;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LuatOS】简单案例网页点灯

材料 硬件&#xff1a;合宙ESP32C3简约版&#xff0c;BH1750光照度模块&#xff0c;0.96寸OLED(4P_IIC)&#xff0c;杜邦线若干 接线&#xff1a; ESP32C3.GND — OLED.GND — BH1750.GND ESP32C3.3.3V — OLED.VCC — BH1750.VCC ESP32C3.GPIO5 — OLED.SCL — BH1750.SCL E…

AOP跨模块捕获异常遭CGLIB拦截而继续向上抛出异常

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、BUG详情 1.1 报错信息 1.2 接口响应信息 1.3 全局异常处理器的定义 二、排查过程 三、解决方案 四、总结 前言 最近&…

数据科学工作的20个Pandas函数(备忘)

Pandas 是数据科学社区中使用最广泛的库之一&#xff0c;它是一个强大的工具&#xff0c;可以进行数据操作、清理和分析。 本文将提供最常用的 Pandas 函数以及如何实际使用它们的样例。我们将涵盖从基本数据操作到高级数据分析技术的所有内容&#xff0c;到本文结束时&#xf…

攻防世界题目练习——Web引导模式(五)(持续更新)

题目目录 1. FlatScience2. bug3. Confusion1 1. FlatScience 参考博客&#xff1a; 攻防世界web进阶区FlatScience详解 题目点进去如图&#xff0c;点击链接只能看到一些论文pdf 用dirsearch和御剑扫描出一些隐藏文件&#xff1a; robots.txt: admin.php: login.php: f…

配电站房智慧化改造

随着科技的发展和工业化自动化的不断提高&#xff0c;传统的配电室已经不能满足现代工业的需求。配电站房的智慧化改造可以提高电力系统的运行效率和安全性&#xff0c;依托电易云-智慧电力物联网实现配电房无人值守。以下是配电站房智慧化改造的一些主要方面&#xff1a; 设备…

数据分享 I 全国市级商品房屋销售数据,shp/excel格式,2005-2020年数据

基本信息. 数据名称: 全国市级商品房屋销售数据 数据格式: Shp、excel 数据时间: 2005-2020年 数据几何类型: 面 数据坐标系: WGS84坐标系 数据来源&#xff1a;网络公开数据 数据字段&#xff1a; 序号字段名称字段说明1spxse商品房销售额&#xff08;亿元&#xf…

css 表示具有特定类或者其他属性的某种标签类型的元素

需求 通过 css 选择器获取某种标签&#xff08;如&#xff1a;div、input 等&#xff09;具有某个属性&#xff08;如&#xff1a;class、id 等&#xff09;的元素&#xff0c;从而修改其样式。 代码 通过 [标签].[属性] 的方式来获取 <div class"test">&l…

合封芯片开发就找宇凡微,提供合封芯片技术支持与资讯

一、引言 随着科技的迅速发展&#xff0c;芯片在各种电子设备中的地位日益凸显&#xff0c;其中越来越受关注的合封芯片给芯片和pcb厂商带来惊喜 合封芯片是指将多个芯片&#xff08;或其他电子元件&#xff09;封装在一个芯片封装体中的芯片。这种封装方式可以实现多个芯片的…

APP自动化测试工具大全

一、UI自动化测试工具 1. uiautomator2 openatx开源的ui自动化工具&#xff0c;支持Android和iOS。主要面向的编程语言是Python&#xff0c;API设计简洁易用&#xff0c;在开源社区也是很受欢迎。 安装&#xff1a; pip install --upgrade --pre uiautomator2# Or you can …

ArcGIS无法绘制一个或多个图层

背景&#xff1a;在导入一份数据时候&#xff0c;arcmap出现无法绘制一个或多个图层的错误&#xff0c;...点数少于要素所要求的的数量&#xff0c;查阅了半天资料发现是制作数据时候拓扑关系错误造成&#xff0c;现将处理方法详细记录如下&#xff1a; 1.原数据&#xff1a; …

北斗卫星助力消防救援实现精确升级

北斗卫星助力消防救援实现精确升级 在浙江省湖州市&#xff0c;当地消防支队建设了基于北斗系统的“智慧用水”等湖州市“智慧消防”综合信息指挥平台&#xff0c;初步实现了火灾精确预警、精确防范、精确指挥和精确处置。 湖州市“智慧用水系统”通过将北斗系统与地理信息管网…

plf::list原理分析

plf::list是一个比std::list性能要好的另外一种实现&#xff0c;根据作者的性能测试&#xff1a; 293% faster insertion 57% faster erasure 17% faster iteration 77% faster sorting 70% faster reversal 91% faster remove/remove_if 63% faster unique 811% faster clear …

【分享】7-Zip软件如何压缩文件?

7-Zip是一款完全免费的解压缩软件&#xff0c;不仅拥有自己独特的格式&#xff0c;还支持众多主流压缩格式&#xff0c;相比其他解压缩软件&#xff0c;它的压缩率更好&#xff0c;压缩速度更快。今天来分享一下如何使用7-Zip软件来压缩文件。 首先&#xff0c;我们可以到7-Zi…

SpringBoot热部署

SpringBoot热部署 借鉴链接&#x1f517;&#xff1a;SpringBoot中的热部署 添加devtools依赖和pom插件 <!-- devtools 依赖 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId&…

C语言——结构体

一、结构的基础知识 结构是一些值的集合&#xff0c;这些值称为成员变量结构的&#xff0c;每个成员可以是不同类型的变量。 二、结构的声明 struct tag {member-list; }variable-list; 描述一个学生&#xff1a; typedef struct Student {char name[20]; //姓名int age; …

SpringBoot入门及整合

前言 Spring Boot是一个基于Spring框架的快速开发脚手架&#xff0c;它简化了Spring应用的初始化和搭建过程&#xff0c;提供了众多便利的功能和特性并且使用"习惯优于配置"的理念&#xff0c;通过提供默认设置来快速搭建应用&#xff0c;同时也保留了灵活性以进行定…

IntelliJ IDEA创建一个spark的项目

在开始之前&#xff0c;需要说明的是 要跑通基本的wordcount程序&#xff0c;是不需要在windows上安装 hadoop 和spark的&#xff0c;因为idea在跑程序的时候&#xff0c;会按照 pom.xml配置文件&#xff0c;从指定的 repository源&#xff0c;按照properties指定的版本&#x…

系统架构设计师教程(一)绪论

系统架构设计师 1.1 系统架构概述1.1.1 系统架构的定义及发展历程1.1.2 软件架构的常用分类及建模方法1、软件架构常用分类2、系统架构的常用建模方法 1.2 系统架构设计师概述1.3 如何成为一名好的系统架构设计师 1.1 系统架构概述 自1946年第一台计算机诞生以来&#xff0c;计…

LVDS硬件设计

LVDS接口有: 1、四对信号传输差分线&#xff0c;最多传输 4*728bit数据 2、一对时钟。 3、一对差分线有8位&#xff0c;但是最多传输7 bit 的数据。 4、一个LVDS通道只能传输8bit的RGB信号&#xff08;3*8 3 27bit&#xff09;。高于8Bits 就需要两个channel。 5、LVDS的时钟一…

CSS import 规则

导入 “navigation.css” 样式到当前的样式表&#xff1a; import “navigation.css”; /* 使用字符串 / 或者 import url(“navigation.css”); / 使用 url 地址 */ 属性定义及使用说明 CSS import 用于从其他样式表导入样式规则。 import 规则必须在 CSS 文档的头部&#xff…