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

【笔记】算法记录

1、求一个数的素因子(试除法)

// 获取一个数的所有素因子
set<int> getPrimeFactors(int num) {
    set<int> primeFactors;
    for (int i = 2; i * i <= num; ++i) {
        while (num % i == 0) {
            primeFactors.insert(i);
            num /= i;
        }
    }
    if (num > 1) {
        primeFactors.insert(num);
    }
    return primeFactors;
}

2、计算集合的交集

#include <algorithm>
#include <set>

set<int> commonFactors, primeFactors, intersection;
set_intersection(commonFactors.begin(), commonFactors.end(), 
                primeFactors.begin(), primeFactors.end(), 
                inserter(intersection, intersection.begin()));

这段代码的作用

这段代码使用了 C++ 标准库中的 set_intersection 函数,它计算两个集合(commonFactorsprimeFactors)的交集,并将结果存入 intersection 集合中。以下是每个部分的详细说明:

代码解析
  1. set_intersection 函数

    • 这是 <algorithm> 头文件中的标准函数,用于计算两个已排序范围的交集。
    • 它需要输入的集合是升序排序的,而 C++ 的 std::set 默认就是升序排列,因此可以直接使用。
  2. 参数说明

    • commonFactors.begin(), commonFactors.end():第一个集合的范围,表示当前的公共素因子集合。
    • primeFactors.begin(), primeFactors.end():第二个集合的范围,表示当前数的所有素因子集合。
    • inserter(intersection, intersection.begin()):一个插入迭代器,用于将交集结果插入到 intersection 集合中。
  3. 执行逻辑

    • 遍历两个集合,找出同时存在于两个集合中的元素。
    • 将这些共同的元素存入 intersection 集合。
  4. 结果

    • 交集计算完成后,intersection 集合包含了两个集合中共同的素因子。

3、


http://www.kler.cn/a/472170.html

相关文章:

  • 如何在 Ubuntu 22.04 上安装 Cassandra NoSQL 数据库教程
  • 网络安全-XSS跨站脚本攻击(基础篇)
  • 单片机软件定时器V4.0
  • Jmeter进阶篇(31)解决java.net.BindException: Address already in use: connect报错
  • 鸿蒙APP之从开发到发布的一点心得
  • RedisTemplate执行lua脚本及Lua 脚本语言详解
  • 2.STM32F407ZGT6-外部中断
  • 怎么管理电脑usb接口,分享四种USB端口管理方法
  • 自动化之数据库:docker部署mongo,为下一步的使用打下基础
  • MAX3232芯片介绍
  • Elixir语言的并发编程
  • docker对外发布服务,docker compose使用
  • opencv 学习(1)
  • Python 模拟登录网页,或者编写爬虫时模拟登录的详细总结
  • linux 使用 MySQL Performance Schema 和 Prometheus + Grafana 来监控 MySQL 性能
  • ZooKeeper Java API操作
  • 游戏引擎学习第77天
  • Elasticsearch:搜索相关性
  • Spring Boot 多环境配置与切换
  • Electron使用记录
  • 深入理解Mybatis原理》MyBatis的sqlSessi
  • 【随时随地学算法】本地部署hello-algo结合内网穿透远程学习新体验
  • HarmonyOS:@Builder装饰器:自定义构建函数
  • MATLAB语言的数据库交互
  • flutter 独立开发之笔记
  • Elasticsearch复习笔记