约数之和(质因子分解)

news2024/12/25 9:49:33

思路:

(1)由数论基本定理,任何一个正整数x都能写作p1_{}^{\partial 1}p2_{}^{\partial 2}...pk_{}^{\partial k},其中p1,p2..pk为x的质因子。

(2) 由此可以推断,要求一个数约数的和,注意到约数就是p1,p2...pk的一种组合,实际上就是求这些质因子的所有组合方式的和,每种质因子有(\partial i + 1)种选择,显然是(\partial 1+ 1)...(\partial k + 1)种不同组合,将这些组合相加即为约数的和,进行分配律合并即为:

(p1^{0} + p1^{1} + p1^{2} +...+p1^{\partial 1})...(pk^{0} + pk^{1} + pk^{2} +...+pk^{\partial k});

(3)那么先可以进行质因子分解,拿到质因子及其个数后,考虑求取

(pi^{0} + pi^{1} + pi^{2} +...+pi^{\partial i});显然这相当于pi进制的一个1111...111的数共 (\partial i + 1)项;设t为1,用乘pi加1,循环\partial i次即可得到(pi^{0} + pi^{1} + pi^{2} +...+pi^{\partial i})的值了,以此计算相乘取模即可。

代码:

#include<bits/stdc++.h>

using namespace std;
typedef long long LL;

const int mod = 1e9 + 7;
int main()
{
    LL n;
    cin >> n;
    
    unordered_map<int,int> q;
    
    while(n --)
    {
        LL x;
        cin >> x;
        
        for(int i = 2;i <= x/i;i ++)
        {
            while(x % i == 0)
            {
                q[i] ++;
                x /= i;
            }
        }
        
        if(x > 1) q[x] ++;
    }
    
    LL res = 1;
    for(auto t : q)
    {
        LL p = t.first;
        LL e = t.second;
        
        LL tmp = 1;
        while(e --)
        {
            tmp = (tmp*p + 1) % mod;
        }
        
        res = res*tmp %mod;
    }
    
    cout << res << endl;
    
    return 0;
}

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

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

相关文章

Netty:ByteBuf类型转化

说明 io.netty.buffer.ByteBuf经常需要跟其它类型互相转化&#xff0c;例如ByteBuf类型作为Object类型函数参数传递&#xff0c;函数内部处理时将Object转换为ByteBuf。 代码示例 ByteBuf和Object类型互转 package com.thb;import io.netty.buffer.ByteBuf; import io.net…

【Java转Go】快速上手学习笔记(一)之环境安装篇

前言 前两天开始学习Go&#xff0c;需要写篇笔记记录总结一下。 Go它也是可以做web开发的&#xff0c;就像Java一样&#xff0c;做JavaWeb项目&#xff0c;Go也可以做GoWeb项目。当然Go的作用用处肯定不止这个&#xff0c;还有很多&#xff0c;只是因为我目前的话&#xff0c…

python中两个数据框之间的遍历

1.输入文件1 文件1&#xff1a;第一列是基因名字&#xff0c;列2&#xff1a;外显子起始位置&#xff0c;列3&#xff1a;外显子终止位置&#xff0c;列4&#xff1a;外显子的序号 2.输入文件2&#xff1a; 备注&#xff1a;列1&#xff1a;基因id&#xff1b;列2&#xff1a;…

浅谈早期基于模板匹配的OCR的原理

基于模板匹配的概念是一种早期的字符识别方法&#xff0c;它基于事先准备好的字符模板库来与待识别字符进行比较和匹配。其原理如下&#xff1a; 1. 字符模板库准备&#xff1a;首先&#xff0c;针对每个可能出现的字符&#xff0c;制作一个对应的字符模板。这些模板可以手工创…

Milvus Cloud向量数据库或率先在垂直领域体现价值

从市场维度上看,尽管大模型带火了向量数据库,多家初创公司受到资本市场青睐,但是其商业化落地和规模化应用的前景仍不明朗:一方面,技术迭代慢,没有新的突破。向量数据库核心技术包括索引、相似度计算、Embedding等,这些技术早已出现,时至今日并没有实现大的创新突破;另…

安全头响应头(三)​X-Content-Type-Options

一 X-Content-Type-Options响应头 说明&#xff1a;先写个框架,后续补充 思考&#xff1a;请求类型是 "style" 和 "script" 是什么意思? script标签 style StyleSheet JavaScript MIME type 文件扩展和Content-Type的映射关系 ① 基础铺垫 ngin…

Kali Linux助您网络安全攻防实战

Kali Linux&#xff1a;黑客与防御者的神器 Kali Linux是一款专为网络安全测试和攻防实践而设计的操作系统。它汇集了大量的安全工具&#xff0c;可以用于渗透测试、漏洞扫描、密码破解等任务&#xff0c;不仅为黑客提供了强大的攻击能力&#xff0c;也为安全防御者提供了测试和…

每日一题 25K个一组翻转链表

题目 给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内…

继承和多态C++

这里写目录标题 继承public、protected、private 修饰类的成员public、protected、private 指定继承方式改变访问权限 C继承时的名字遮蔽问题基类成员函数和派生类成员函数不构成重载C基类和派生类的构造函数构造函数的调用顺序基类构造函数调用规则 C基类和派生类的析构函数C多…

我的创作纪念日(256天)

前言 结缘 我与csdn的结缘&#xff0c;之前在创作纪念日&#xff08;128天&#xff09;便已提到&#xff0c;今在此便不再多言 收获 很惭愧&#xff0c;自六月底至八月中旬&#xff0c;因为忙于找工作&#xff0c;奔赴面试求职之际&#xff0c;写博客没有像之前那么勤&#x…

JetPack Compose 学习笔记(持续整理中...)

1.为什么要学&#xff1f; 1.命令式和声明式 UI大战,个人认为命令式UI自定义程度较高,能更深入到性能,内存优化方面,而申明式UI 是现在主流的设计,比如React,React Native,Flutter,Swift UI等等,现在性能也逐渐在变得更好 2.还有一个原因compose 是KMM 是完整跨平台的UI基础 3.…

企业内部知识问答系统面临的挑战及解决方案;小米开启AI大模型内测版本

&#x1f989; AI新闻 &#x1f680; 小米宣布未来五年投入1000亿元&#xff0c;开启AI大模型内测版本 摘要&#xff1a;在小米雷军年度演讲上&#xff0c;小米宣布未来五年将投入1000亿元人民币用于技术研发&#xff0c;同时公布了AI大模型内测版本的邀请测试。该内测版本将…

Java算法_ 二叉树的最大深度(LeetCode_Hot100)

题目描述&#xff1a;给定一个二叉树 &#xff0c;返回其最大深度。root 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 获得更多&#xff1f;算法思路:代码文档&#xff0c;算法解析的私得。 运行效果 完整代码 /*** 2 * Author: LJJ* 3 * Date: 2023/…

python篇---提取VOC格式的坐标,并按照cameraID进行排序

python篇—提取VOC格式的坐标&#xff0c;并按照cameraID进行排序 from datetime import datetime import xml.etree.ElementTree as ET import ossets [("images")] # fixme: 所对应的标签 classes ["2"] IMAGE_PATH "./saves/{}.txt" DATA…

穿上App外衣,保持Web灵魂——PWA温故

穿上App的外衣&#xff0c;保持Web的灵魂—— PWA 早在2015年&#xff0c;设计师弗朗西斯贝里曼和Google Chrome的工程师亚历克斯罗素提出“PWA&#xff08;渐进式网络应用程序&#xff09;”概念&#xff0c;将网络之长与应用之长相结合&#xff0c;其核心目标就是提升 Web Ap…

无涯教程-Perl - send函数

描述 此函数在SOCKET上发送消息(与recv相反)。如果Socket未连接,则必须提供一个目标以与TO参数进行通信。在这种情况下,将使用sendto系统功能代替系统发送功能。 FLAGS参数由按位或0以及MSG_OOB和MSG_DONTROUTEoptions中的一个或多个形成。 MSG_OOB允许您在支持此概念的Socke…

知兵之将,是国家的宝贝呀

知兵之将&#xff0c;是国家的宝贝呀 【安志强趣讲《孙子兵法》第9讲】 【原文】 故智将务食于敌。食敌一钟&#xff0c;当吾二十钟&#xff1b;芑&#xff08;qǐ &#xff09;秆一石&#xff08;dan&#xff09;&#xff0c;当吾二十石。 【注释】 钟&#xff1a;古代容量单位…

力扣:62. 不同路径(Python3)

题目&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&…

MFC编程基础

一、MFC类库简介 ●微软基础类库( Microsoft Foundation Classes, MFC )是Microsoft公司提供的关于Win32 API的C类库集&#xff0c;它定义了一个标准的应用程序框架。 ●借助这个框架,用户可以轻松地开发标准的Windows应用程序。 ●MFC实现了标准的用户…