已知整数n、m取值范围为{1,2,…,k},1<=k<=10000,且n 2 ^2 2-nm-m 2 ^2 2=1 求n 2 ^2 2+m 2 ^2 2的最大值
采用Python编程如下:
try:
k = int(input("请输入正整数k:"))
if k < 1:
print("输入错误!")
s_max, nr, mr = 0, 0, 0
for n in range(1, k + 1):
for m in range(1, k + 1):
if pow(n, 2) - n * m - pow(m, 2) == 1:
s = pow(m, 2) + pow(n, 2)
if s_max < s:
s_max, nr, mr = s, n, m
print("{0}*{0}+{1}*{1}={2}".format(nr, mr, s_max))
except ValueError:
print("输入错误!")
D:\Python\study\venv\Scripts\python.exe D:/Python/study/20200908/test2.py
请输入正整数k:1995
1597*1597+987*987=3524578
Process finished with exit code 0
采用Java编程如下:
package test;
import java.util.Scanner;
public class maxx {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
System.out.println("请输入一个正整数:");
Scanner input = new Scanner(System.in);
int k =input.nextInt();
int rn=0,rm=0,sum=0,temp=0;
for(int n=1;n<=k;n++) {
for(int m=1;m<=k;m++) {
if(Math.pow((n*n-n*m-m*m),2)==1) {
temp=n*n+m*m;
if(sum<temp) {
sum=temp;rn=n;rm=m;
}
}
}
}
System.out.print(rn+"*"+rn+"+"+rm+"*"+rm+"="+sum);
}catch(Exception e) {
System.out.print("输入错误!");
}
}
}
请输入正整数k:
1995
1597*1597+987*987=3524578
运算速度Java比Python要快得多。