算术序列可以表示为A、A+b、A+2b、…、A+nb(n=0,1,2,3,…),其中A是非负整数,b是正整数。编写程序求双平方数集S中长度n的等差数列。双平方数集是所有可表示为P2+q2的数的集合。
输入第一行:N(3<=N<=25),您要查找的算术序列的长度。第二行:M(1<=M<=250),搜索双平方数0<=P,Q<=M的上界
如果没有找到序列,输出'NONE'。如果是这样,输出一行或多行,每行由两个整数组成:A、B。这些行应该先按B排序,然后按A排序。算术序列不超过10,000个。
示例输入5 7
示例输出1 4 37 4 2 8 29 8 1 12 5 12 13 12 17 12 5 20 2 24
给出一个n来表示算术序列有多少项,然后给出一个m来判断是否存在一个满足a+nb=q2+p2且q和p都小于或等于m的算术序列,(n=0,1,2,3…)
用数组s存储q2+p2的和并排序,然后去暴力看看是否有这样的等差数列。等差数列的第一项必须是数组s中的数,最大容差为d=(2*m2-S[i])/(n-1)。