前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python|求方程X2+Y2=N的全部正整数解

python|求方程X2+Y2=N的全部正整数解

作者头像
算法与编程之美
发布2019-12-17 15:13:19
1.7K0
发布2019-12-17 15:13:19
举报

问题描述

该问题的原题描述为:本题要求对任意给定的正整数N,求方程X2+Y2=N的全部正整数解。给定的N<=10000,如果本题要求对任意给定的正整数N,求方程X2+Y2=N的全部正整数解。给定的N<=10000,如果有解请输出全部解,如果无解请输出No Solution。有解请输出全部解,如果无解请输出No Solution。

解决方案

首先分析题目,可知其为二元二次方程式,要是让我们自己来解基本不可能,

所以只能通过程序来解决。对于这种两个未知数的我们可以分别让他们从1开始遍历每一个正整数,直至找出所有解。

(1)先让x,y遍历每一个正整数

(2)设置输出所有解后停止循环的条件

(3)最后加上无解时输出No Solution的条件

将问题拆分分析后,将所有代码按程序输入,最后的代码如下。

x = 1list = []while True: for y in range(1,x+1): s = x**2+y**2 if s == N: print(x,y) list.append((x,y)) if x**2>N: break x += 1if len(list) == 0: print('No Solution')

最后让我们看一看运行效果

图3.1有解时的输出效果

图3.2无解时的输出效果

对于python中的编程题,拿到问题不要慌张,首先要将其拆分成一些小问题,然后分步思考,最终得出答案。

END

主 编 | 张祯悦

责 编 | 江来洪

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档