一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?- 多语言

devtools/2024/11/24 20:38:05/

目录

C 语言实现

Python 实现

Java 实现

Js 实现 


题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

程序分析:

假设该数为 x。

1、则:x + 100 = n2, x + 100 + 168 = m2

2、计算等式:m2 - n2 = (m + n)(m - n) = 168

3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数

4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。

5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。

6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1

7、接下来将 i 的所有数字循环计算即可。

具体实现如下:

C 语言实现

#include <stdio.h>int main (void)
{int  i, j, m, n, x;for (i = 1; i < 168 / 2 + 1; i++){if (168 % i == 0){j = 168 / i;if ( i > j && (i + j) % 2 == 0 && (i - j) % 2 == 0){m = (i + j) / 2;n = (i - j) / 2;x = n * n - 100;printf ("%d + 100 = %d * %d\n", x, n, n);printf ("%d + 268 = %d * %d\n", x, m, m);}}}return 0;
}

Python 实现

python">def main():for i in range(1, 168 // 2 + 1):if 168 % i == 0:j = 168 // iif i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0:m = (i + j) // 2n = (i - j) // 2x = n * n - 100print(f"{x} + 100 = {n} * {n}")print(f"{x} + 268 = {m} * {m}")if __name__ == "__main__":main()

Java 实现

java">public class Main {public static void main(String[] args) {for (int i = 1; i <= 168 / 2; i++) {if (168 % i == 0) {int j = 168 / i;if (i > j && (i + j) % 2 == 0 && (i - j) % 2 == 0) {int m = (i + j) / 2;int n = (i - j) / 2;int x = n * n - 100;System.out.printf("%d + 100 = %d * %d%n", x, n, n);System.out.printf("%d + 268 = %d * %d%n", x, m, m);}}}}
}

Js 实现 

javascript">function main() {for (let i = 1; i <= 168 / 2; i++) {if (168 % i === 0) {let j = 168 / i;if (i > j && (i + j) % 2 === 0 && (i - j) % 2 === 0) {let m = (i + j) / 2;let n = (i - j) / 2;let x = n * n - 100;console.log(`${x} + 100 = ${n} * ${n}`);console.log(`${x} + 268 = ${m} * ${m}`);}}}
}main();

http://www.ppmy.cn/devtools/136637.html

相关文章

利用c语言详细介绍下插入排序

插入排序&#xff0c;被称为直接插入排序。它的基本思想是将一个记录插入到已经排好序的有序表中&#xff0c;从而一个新的、记录数增 1 的有序表。 一、图文介绍 我们还是使用数组【10&#xff0c;5&#xff0c;3&#xff0c;20&#xff0c;1]&#xff0c;排序使用升序的方式&…

【大数据学习 | Spark-Core】yarn-client与yarn-cluster的区别

1. yarn的提交命令 # yarn的提交命令参数 --master yarn #执行集群 --deploy-mode # 部署模式 --class #指定运行的类 --executor-memory #指定executor的内存 --executor-cores # 指定核数 --num-executors # 直接指定executor的数量 --queue # 指定队列 2. yarn-client模式…

【qt】控件QLabel

1.Qlabel QLabel的文本显示 Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);ui->label->setTextFormat(Qt::PlainText);//设置文本格式为纯文本ui->label->setText("这是纯文本");//设置文本内容ui->…

40分钟学 Go 语言高并发:Select多路复用

Select多路复用 学习目标 知识点掌握程度应用场景select实现原理深入理解底层机制channel通信和多路选择超时处理掌握超时控制方法避免阻塞和资源浪费优先级控制理解优先级实现处理多个channel的顺序性能考虑了解性能优化点高并发场景优化 1. Select实现原理 让我们通过一个…

光伏电站项目-视频监控、微气象及安全警卫系统

一、项目背景 近年来&#xff0c;我国光伏发电持续快速发展。截止2019年5月装机总容量超过2.043亿千瓦&#xff0c;技术水平不断提升&#xff0c;成本显著降低&#xff0c;开发建设质量和消纳利用明显改善&#xff0c;在部分地区实现了家庭分布式光伏并入电网&#xff0c;为建…

MATLAB 2024a安装包下载及安装教程

[安装环境]: Win 11/Win 10 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等。MATLAB的基本数据单位是矩阵&#xff0c;它的指令表达式与数学…

【入门篇】哥德巴赫猜想——多语言求解版

# [NOIP2004 提高组] 津津的储蓄计划 题目描述 津津的零花钱一直都是自己管理。每个月的月初妈妈给津津 300 300 300 元钱&#xff0c;津津会预算这个月的花销&#xff0c;并且总能做到实际花销和预算的相同。 为了让津津学习如何储蓄&#xff0c;妈妈提出&#xff0c;津津…

嵌入式LVGL自定义纯数字键盘

嵌入式LVGL自定义纯数字键盘 一、前言二、设置自定义数字键盘三、使用一、前言 嵌入式UI项目中有时候会使用到纯数字密码的需求,所以打算使用LVGL构建自定义的纯数字键盘。 二、设置自定义数字键盘 参考这个文章,以LV_KEYBOARD_MODE_USER_1为例,增加一个数字键盘,如下图所…