洛谷 P1593 因子和 (升级版!)

2023-05-16

题目描述

已知一个等差数列{an}的首项为 ,且对于任意两个正整数 i,j 都存在ai+aj 也在该数列中,

求所有可能的公差 d 的和,答案对 99824353 取模。

输入输出格式

输入格式:

 

输入的第一行为两个正整数 x,y。

 

输出格式:

 

输出包括一行一个整数,代表所有可能的公差 d 的和。

 

输入输出样例

输入样例#1:

2 3

输出样例#1:

15

说明

对于 10%的数据,x,y<=10,

对于 30%的数据,x,y<=100000,

对于 70%的数据,x,y<=1e9 ,

对于 100%的数据,x,y<=1e15

 

比较有意思的一道数学题。通过一点点转换就可以变成洛谷的那道题了。

首先,对于任意的ai,aj,ai+aj也在这个等差数列中。我们设aj=ai+mdai+aj=2ai+md\because ai+aj也在数列中,\thereforeai+aj=ai+md+nd\therefore 2ai+md=ai+md+nd,化简得n=\frac{ai}{d}\becauseai,n都为整数,\therefore d为整数,所有数列所有公差d的和为ai的所有因子和。所以现在只要求出x^{y}的所有因子和就行了。

 

先不管那个y次方,从x入手。对于任意一个数x,将它质因数分解。随便举个例子,对于12,质因数分解后变成了2^{2}\cdot 3^{1},它的因子则为2^{0}or3^{0}2^{1} , 3^{1} , 2^{1}\cdot3^{1} , 2^{2}\cdot3^{1},然后这些因子的和可以化为\left ( 2^{0}+2^{1}+2^{2} \right )\cdot\left ( 3^{0}+3^{1} \right ) ,不信邪的同学可以把括号拆开来或者多列举几个数来试。因此,对于任意一个数x,设其第i个质因子为pi,其最高次为ki,所有因子的和则为\prod_{i=1}^{n}\sum_{j=0}^{ki}pi^{j}

看起来这个东西很怪很难算,其实说简单点就是找到这个数每个质因子的最高次方,然后从1一直加到这个质因子的最高次方,然后把所求的和全乘起来就能得到答案了。

最后那个之前被丢弃的y次方可以捡回来了。如果一个数x的其中一个质因子p的最高次方为k,那么在x^{y}中质因子p的最高次方显然是k\cdot y,所以只需要在最高次方上面乘个y就行了。等比数列求和的话是数学必修的内容我就懒得说了直接套公式吧。

#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#define LL long long
using namespace std;
const int p=998244353;
long long x,y,ans=1,tot=1;
inline LL qpow(LL a, LL n)//快速幂
{
    LL ans = 1;
    while(n)
    {
        if(n & 1) ans = ans * a % p;
        a = a * a % p;
        n >>= 1;
    }
    return ans;
}
inline LL niyuan(LL b)//求逆元
{
    return qpow(b%p,p-2);
}
inline LL solve(LL a,LL b)
{
    return ((qpow(a%p,b*y+1)-1))*(niyuan(a-1))%p;//等比数列求和
} 
int main()
{
    cin>>x>>y;
    int k=sqrt(x);
    if(k<2)
        k=x;
    for(int i=2;i<=k;i++)
    {
        register LL cnt=0;
        while(!(x%i))//找到因子(其实判断是不是质因子都无所谓了毕竟第一个枚举到的肯定就是质因子)
        {
            ++cnt;
            x/=i;
        }
        if(cnt)//cnt记录最高次方
            ans=(ans*solve((LL)i,cnt))%p;
    }
    if(x>1) ans=(ans*solve(x,1))%p;//补上最后一部分。
    cout<<ans%p;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

洛谷 P1593 因子和 (升级版!) 的相关文章

  • abaqus应力值导出并进行后处理(同一节点多个应力值如何处理?)

    Abaqus应力导出 xff1a Tools Probe values 在Probe Values里面可以选择需要导出的信息 xff0c 比如 Nodes 或者 Elements 如果需要导出多个应力值或者其他信息可以选择 Componen
  • collect2: fatal error: ld terminated with signal 9 [Killed]

    Q What is this kind of build error representative of collect2 ld terminated with signal 9 Killed A There is not enough v
  • VNCserver 配置 gnome 桌面

    HOWTO Linux VNCserver By Erik Rodriguez This article is a HOWTO for running VNCserver on Linux These examples are specif
  • 附加!-关于安装R4.0.0-详细步骤

    附加博客 关于安装R 详细步骤 在我下载完毕之后 xff0c 发现对于第一次安装的 小白 来说可能还是有一点儿彷徨 xff0c 所以下面的步骤就以图的形式来走一遍 xff1a 第一步 xff1a 下载得到下图 xff1a xff08 R 4
  • 【牛客网 - 华为机试 - HJ5 进制转换】

    描述 写出一个程序 xff0c 接受一个十六进制的数 xff0c 输出该数值的十进制表示 数据范围 xff1a 保证结果在 输入描述 xff1a 输入一个十六进制的数值字符串 输出描述 xff1a 输出该数值的十进制字符串 不同组的测试用例
  • Java JDK11的下载与安装

    前言 本篇文章是基于win10系统下载安装JDK11的教程 1 下载Oracle JDK 进入Oracle 官网 xff1a https www oracle com java technologies downloads java11 选
  • 电脑怎样删除警告“操作无法完成“的文件夹

    问题概述 虽然系统这样的提示了 xff0c 但是我们查看一下桌面没有看到任何正在运行的程序啊 xff0c 这是怎么了 xff0c 是不是系统出错了 其实不是系统出错了 xff0c 只是有的应用程序在后台运行 xff0c 我们根本看不到 xf
  • 使用python解决三门问题(Monty Hall Problem)实验

    问题描述 奖品随机分布在3扇门后 xff0c 客户随机选择其中一扇 xff0c 主持人打开另外两扇中任意没有奖品的一扇 xff0c 问客户选择以下哪种策略赢面更大 xff1a 1 坚持原来的选择 2 改选剩下的那扇未打开的门 问题分析 1
  • 75个顶级开源安全应用

    本文转载自 xff1a http www iii soft com forum php mod 61 viewthread amp tid 61 1513 随着网络犯罪的日益增多 xff0c 或许我们需要更多资金投入到安全方面 不过 xff
  • IntelliJ IDEA 常用设置大全

    对IDEA的配置进行优化 xff0c 目的是为了个性化定制提高编码效率 以下为个人通过自己平时积累及网络上分享技巧进行总结 文章标题有点多 xff0c 可通过目录进行快速跳转 基本以下的配置就足以在工作中提高效率 xff0c 按步配置完成后
  • Windows 安装并配置 MySQL 5.6

    1 xff0c 下载 MySQL 压缩包 1 1 xff0c 打开 https www mysql com xff0c 进入 MySQL 的官方网站 xff0c 点击 Downloads xff0c 进入 下载中心 1 2 xff0c 在
  • Git 常用命令记录

    文章目录 安装卸载配置管理不常见的使用场景Idea更新项目失败忽略文件的权限变化配置自动换行创建SSH密钥多账号ssh配置免密码登录远程服务器https协议下提交代码免密码文件推向3个git库修改远程仓库地址撤销远程记录放弃本地的文件修改最
  • Docker 学习笔记 | 常用命令

    文章目录 什么是 DockerDocker 理念能做什么Docker 基本组成 Linux 中安装CentOS 6 8 安装 DockerCentOS 7 安装 DockerDocker 中国官方镜像加速使用 registry mirror
  • Debain查看端口占用开放端口

    查看指定端口服务 查看3002被哪些服务占用 xff1a sudo lsof i 3002 关闭指定服务 xff1a kill PID 端口开放 编辑文件 xff1a vi etc nftables conf 修改内容如下 usr sbin
  • pm2命令使用

    文章目录 常用命令示例 常用命令 启动应用程序 pm2 start lt app name gt 停止应用程序 pm2 stop lt app name gt 重启应用程序 pm2 restart lt app name gt 删除应用程序
  • Markdown入门指南

    导语 一 认识Markdown 使用Markdown的优点 二 Markdown 语法 标题列表 嵌套列表 引用图片与链接 自动链接 粗体与斜体表格代码框 其它 分割线索引超链注释 转义字符段落缩进 空格 字体 字号 颜色 导语 Markd
  • Markdown进阶语法

    文章目录 markdown进阶语法内容目录加强代码块脚注流程图时序图LaTeX公式 markdown进阶语法 内容目录 使用 TOC 引用目录 xff0c 将 TOC 放至文本的首行 xff0c 编辑器将自动生成目录 有一些编辑器不支持 T
  • Maven 变量及常见插件配置详解

    一 变量 自定义变量及内置变量 1 自定义变量2 内置变量 二 常见插件配置 1 编译插件2 设置资源文件的编码方式3 自动拷贝 jar 包到 target 目录4 生成源代码 jar 包5 将项目打成 jar 包 assembly xml
  • Dos命令讲解

    一 什么是DOS二 启动DOS的多种方法 三 DOS的内部命令与外部命令四 系统环境变量讲解 增加Path环境变量路径常见的系统环境变量 五 常用的运行命令六 DOS使用技巧 设置CMD的默认路径设置CMD的字体 背景颜色设置快捷键启动CM
  • 题解:luogu P5568 [SDOI2008]校门外的区间

    题解 xff1a luogu P5568 SDOI2008 校门外的区间 luogu P5568 SDOI2008 校门外的区间 前置知识 xff1a 珂朵莉树 问题一 xff1a 开闭区间 区间端点均为整数 xff0c 不妨认为 xff0

随机推荐

  • 常用DOS命令之通俗易懂篇

    摘要 xff1a 讲解常用的Dos命令 xff0c 如果需要学习更多的命令可以使用cmd的help工具 文章内容较长 xff0c 可以通过搜索来查找对应的命令 常用DOS命令之通俗易懂篇 Arp 命令Assoc 关联At 计划服务Attri
  • 修改/忘记数据库密码

    文章目录 如何修改数据库密码一 用 SET PASSWORD 命令二 用 mysqladmin三 用 UPDATE 直接编辑 user 表四 在忘记 root 密码的时候 xff0c 可以这样windows下修改linux下修改 五 解决5
  • 远程桌面,身份验证错误:要求的函数不正确等解决办法

    问题解决方法具体解决办法windows 家庭版家庭版最终解决方案 问题 windows 版本 10 0 17134 xff0c 安装最新补丁后无法远程 windows server 2008 2013 2016 服务器 报错信息如下 xff
  • Apache的配置详解 带图

    Apache 的配置详解 带图 1 01 ServerRoot 配置1 02 Mutex default logs1 03 Listen 配置1 04 Dynamic Shared Object DSO Support 动态共享对象支持 1
  • IIS 反向代理到 Apache、Tomcat

    环境工具需求教程 反向代理 IIS 反向代理可以将请求的网址重写到其它网址 xff0c 达到转发的目的 一般用于一台服务器只允许开启80端口 xff0c 而80端口又被IIS使用 xff0c 此时需要在IIS中设置URL重写 xff0c 将
  • 使用hexo+github搭建免费个人博客详细教程

    Windows环境下Git安装 配置SSH key 安装node js npm 安装Hexo及配置 发布博客 前言 使用github pages服务搭建博客的好处有 xff1a 全是静态文件 xff0c 访问速度快 xff1b 免费方便 x
  • Hexo使用细节及各种问题

    解决markdown图片不显示 返回403 forbidden 添加本地图片无法显示 修改文章page模板 同时发布同步到多个仓库站点 Github coding 图片不显示 在使用过程中 xff0c 会发现有的引用图片无法显示的问题 但是
  • 实现Github和Coding仓库等Git服务托管更新

    如何使Github Coding Gitee 码云 同时发布更新 xff0c 多个不同Git服务器之间同时管理部署发布提交 缘由 因为在Github上托管的静态页面访问加载速度较为缓慢 xff0c 故想在Coding上再建一个静态页面的项目
  • 渗透测试常用工具

    包括 Burp Suite Acunetix Web Security with Acunetix Vulnerability Scanner Sqlmap Layer PentestBox Struts 2漏洞检测 御剑工具集锦 Kali
  • Jetbrains IntelliJ IDEA PyCharm 注册激活(2018最新)

    AppCode CLion DataGrip GoLand IntelliJ IDEA PhpStorm PyCharm Rider RubyMine WebStorm下载注册激活 官方下载地址 AppCode CLion DataGrip
  • 有道翻译反反爬虫(python)

    有道翻译反反爬虫 xff08 python xff09 该博客创作于2021 6 30 xff0c 之后有失效可能 作为一个初学者 xff0c 花两天时间破解了有道翻译的反爬虫系统 xff0c 故为之文以记之 参考文章 xff1a 博客1博
  • 建一个别人打不开的文件夹

    怎么创建一个打不开的文件夹 xff0c 文件夹打不开 相信大家都遇到过自己的一些隐私文件不愿意让别人看到的情况吧 xff0c 怎么解决呢 xff1f 隐藏起来 xff1f 换个名字 xff1f 或者加密 xff1f 这些办法都可以办到 xf
  • Sublime入门

    文章目录 Sublime入门介绍下载安装安装Sublime Text3 安装插件插件安装器用Package control安装插件用Package control卸载插件用Package control更新插件 Sublime入门 介绍 S
  • 正则表达式入门教程

    文章目录 什么是正则表达式 1 基本匹配2 元字符2 1 点运算符 96 96 2 2 字符集2 2 1 否定字符集 2 3 重复次数2 3 1 96 96 号2 3 2 96 43 96 号2 3 3 96 96 号 2 4 96 96
  • Centos7上卸载重装MariaDB数据库

    查询所安装的MariaDB组件 xff1a span class token punctuation span root 64 localhost logs span class token punctuation span span cl
  • 【数字图像处理】四种常用的滤波器

    数字图像处理 四种常用滤波器 数字图像处理一 平滑滤波器1 1 基本原理1 2 作用1 3 邻域加权平均实现方式 二 高斯滤波器2 1 基本原理2 2 特点 三 中值滤波器3 1 基本原理3 2 适用场合3 3 实现方式3 4 特点 四 拉
  • 远程X技术初探

    前几天和朋友看到一篇实现远程X的文章 xff0c 就一起尝试了一下 xff0c 基本上成功了 xff0c 具体的过程就写在这篇博客中了 我的机器是64位的Debian Wheezy xff0c 朋友的机器上装的是Arch 实现的思路是先在自
  • Linux安装confluence

    借鉴网址 xff1a Confluence 6 9 0 安装 走看看 一 版本说明 xff1a 1 CentOS 7 0 2 Confluence6 9 xff1a atlassian confluence 6 9 0 x64 bin 链接
  • 面向对象——类和对象

    一 面向对象的概念 面向对象是一种符合人类思维习惯的编程思想 现实生活中存在各种形态不同的事物 xff0c 这些事物之间存在着各种各样的联系 在程序中使用对象来映射现实中的事物 xff0c 使用对象的关系来描述事物之间的联系 xff0c 这
  • 洛谷 P1593 因子和 (升级版!)

    题目描述 已知一个等差数列 an 的首项为 且对于任意两个正整数 i xff0c j 都存在ai 43 aj 也在该数列中 求所有可能的公差 d 的和 答案对 99824353 取模 输入输出格式 输入格式 xff1a 输入的第一行为两个正