1 条题解
-
0
自动搬运
来自洛谷,原作者为

Ginger_he
.搬运于
2025-08-24 22:35:24,当前版本为作者最后更新于2022-01-15 19:37:16,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题目描述
求出所有的和为 的长度 的连续自然数段。
题解
设这一段的最小值为 ,最大值为 。
由等差数列求和公式有 。
将 乘到右边有 。
对 进行质因数分解,不妨假设 。
因为 和 均为正整数,因此 ,
这时候只需要判断 和 是否相等以及奇偶性是否相同即可。
时间复杂度 。Code
#include<bits/stdc++.h> using namespace std; typedef long long ll; ll n,m,x; int main() { scanf("%lld",&n); if(n==1) return 0;//特判 m=sqrt(n<<=1); for(ll i=1;i<=m;i++)//根号枚举因数 { if(n%i) continue; x=n/i; if((x%2)!=(i%2)&&x-i+1!=x+i-1)//符合条件 printf("%lld %lld\n",x-i+1>>1,x+i-1>>1); } return 0; }
- 1
信息
- ID
- 7381
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者