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

xtu oj 不定方程的正整数解

文章目录

  • 回顾
  • 思路
  • c 语言代码

回顾

  • A+B III
  • 问题 H: 三角数
  • 问题 G: 3个数
  • 等式 数组下标查询,降低时间复杂度
  • 1405 问题 E: 世界杯
  • xtu 数码串
  • xtu oj 神经网络
  • xtu oj 1167 逆序数(大数据)
  • xtu oj 原根

思路

首先直观地理解这个题目的意思,用 a=6 这个样例去思考,我凑了一下,发现直观地算找出这四个答案组数不是那么好找。分别是 x=2,y=3x=3,y=6x=4,y=12x=5,y=30 ,我就在想计算机需要循环去思考,从小到大去循环,那么我们再观察给的表达式,x 一定要小于 a ,这样才能使得 x 的倒数比 a 的倒数大,才能找到正整数解,同理 y 一定要比 x 大,分子相同分母越大,分数越小。

所以我们可以发现 x 的取值是有一个范围的,从 1a-1 ,不能取到 a ,假设取到 a ,此时减去 0 才是 1/a ,但是 1/y 显然不能取 0 ,以这个作为出发点,把 xa 都当作参数,算出 y 的表达式,y=(a*x)/(a-x) ,需要满足的条件是正整数,并且 y>x

需要注意的代码细节是需要使用 long long ,我其实最开始注意了,可能漏了一些变量,直接 WA 了,后面把 ax 也改成 long long 才过掉这题。

c 语言代码

#include<stdio.h>
#define LL long long int main(){int t;scanf("%d",&t);while(t--){LL a;scanf("%lld",&a);int ans=0;for(LL x=1;x<=a-1;x++){LL up=a*x;LL down=a-x;if(up%down==0){LL temp=up/down;if(temp>x){ans++;}}}printf("%d\n",ans);}return 0;
}

http://www.mrgr.cn/news/54477.html

相关文章:

  • yjs机器学习数据操作01——数据的获取、可视化
  • 民宿预订新纪元:SpringBoot实现的在线平台
  • 昇思MindSpore进阶教程--AOE调优工具
  • 大幅降低人工核验遗漏的概率,降低出错风险的智慧能源开源了
  • QT的事件
  • SpringBoot技术在汽车票预订领域的应用
  • 状态空间表达式的求解与转化【现代控制理论】
  • 第6天:Intent和页面导航
  • 管家婆财贸ERP BB007.销售订单明细批量采购
  • 大数据治理--技术平台与工具
  • 深入探索 APKTool:Android 应用的反编译与重打包工具
  • 2024软考网络工程师笔记 - 第12章.网络规划设计
  • 【软件运行类文档】项目试运行方案,试运行计划书(word原件)
  • Windows环境下安装jdk8,含配置环境变量全过程
  • 基于MATLAB车牌识别系统设计
  • mysql连接池简单原理介绍+高并发场景下的设计
  • 发动机拆解可视化:精细化呈现机械内部结构
  • 安装 Git
  • 二层交换机的工作原理与局域网设备通信详解
  • 瑞云快图云渲染怎么样?渲染一张图贵吗?