[题] The sum problem # 数论 # 因数

news/2024/11/23 0:29:19/

题目

The sum problem

题解

参考博客:
The sum problem(hdu 2058)解题报告

高斯公式: 1+2+…+n=n*(n+1)/2
sum(a,b)定义为从a到b的总和。
目标:求a, b。
sum(a,b)=sum(1,b) –sum(1,a-1)
令c=a-1,
代入 sum(a,b)=M
得到 (b-c)(b+c+1)=m*2
假设m * 2有2个因子,分别为x和y(y>x),
有: y = b+c+1 x = b - c
解方程得: b=(y+x-1)/2 c=(y-x-1)/2 ,a=(y-x+1)/2

接下来对x, y进行匹配,只要是因数对就看看是否满足条件——x, y使得a, b为整数。

代码

#include<bits/stdc++.h>
using namespace std;
int main() {int n, m, a;while(scanf("%d%d", &n, &m), m && n) {//根据推导先乘2 m *= 2;//i遍历去找2*m的因数 for(int i = (int)sqrt((double)m); i >= 2; i --) {if(m % i == 0) {a = m / i + 1 - i;if (a >= 2 && a % 2 == 0) {a /= 2;if(a + i - 1 <= n)printf("[%d,%d]\n", a, a + i - 1); }}}m /= 2;//从1到n找,如果m比n小,那么就会有1*m这对因子被忽略 if(n >= m) printf("[%d,%d]\n", m, m);printf("\n");}return 0;
}

http://www.ppmy.cn/news/1255134.html

相关文章

LeetCode刷题笔记第80题:删除有序数组中的重复项 II

LeetCode刷题笔记第80题&#xff1a;删除有序数组中的重复项 II 题目&#xff1a; 删除升序数组中超过两次的元素后的数组长度 想法&#xff1a; 使用快慢指针的方法完成&#xff0c;使用快指针遍历整个数组&#xff0c;使用慢指针完成相同元素最多保留两个。在快指针遍历到…

SSM框架(五):Maven进阶

文章目录 一、分模块开发1.1 分模块开发的意义1.2 步骤 二、依赖管理2.1 依赖传递2.2 可选依赖和排除依赖 三、继承与聚合3.1 聚合3.2 继承3.3 聚合和继承区别 四、属性4.1 pom文件的依赖使用属性4.2 资源文件使用属性 五、多环境开发六、跳过测试七、私服7.1 下载与使用7.2 私…

【每日一题】1423. 可获得的最大点数-2023.12.3

题目&#xff1a; 1423. 可获得的最大点数 几张卡牌 排成一行&#xff0c;每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动&#xff0c;你可以从行的开头或者末尾拿一张卡牌&#xff0c;最终你必须正好拿 k 张卡牌。 你的点数就是你拿到手中的所有…

[c]比较月亮大小

本题的难点就是分情况讨论 #include<stdio.h> int main() {int n;scanf("%d",&n);int arr2[n];int p;for(int m0;m<n-1;m){scanf("%d",&arr2[m]);//输入n个数保存到数组}if(n1)//当输入一个数据时&#xff0c;输入0&#xff0c;可以判断…

《python编程从入门到实践》第2版 第十章课后练习

第十章 练习10-1练习10-2练习10-3练习10-4练习10-5练习10-6练习10-7练习10-8练习10-9练习10-10练习10-11练习10-12练习10-13 练习10-1 Python学习笔记 在文本编辑器中新建一个文件&#xff0c;写几句话来总结一下你至此学到的Python知识&#xff0c;其中每一行都以“In Python…

【数据结构/C++】树和二叉树_二叉链表

#include <iostream> using namespace std; // 二叉链表 typedef struct BiTNode {int data;struct BiTNode *lchild, *rchild;BiTNode(){lchild NULL;rchild NULL;} } BiTNode; // 初始化二叉链表 void InitBiTree(BiTNode *&T) {T NULL; } // 先序遍历 void Pre…

软件工程期末复习(1)

学习资料 软件工程知识点总结_嘤桃子的博客-CSDN博客 软件工程学习笔记_软件工程导论第六版张海藩pdf-CSDN博客 【软件工程】软件工程期末试卷习题课讲解&#xff01;&#xff01;_哔哩哔哩_bilibili 【拯救者】软件工程速成(期末考研复试软考)均适用. 支持4K_哔哩哔哩_bil…

Redis 实战缓存

本篇概要&#xff1a; 1. 设置、查询、获取过期时间&#xff1b;2. 缓存穿透&#xff1a;设置空键&#xff1b;3. 封杀单ip&#xff1b;4. 封杀ip段&#xff1b;5. 缓存预热&#xff1b;6. 使用 hash 数据类型保存新闻的缓存&#xff0c;增加点击量&#xff1b;7. Sorted set&a…