P={(x,y)属于自然数N x N :A·lcm(x,y)-B·gcd(x,y)=C}目前为止我知道的是lcm是最小公倍数,gcd是最大公约数,编写的这个程序大致意思是,输入任意正整数ABC,可以输出此时P中的所有元素
这个集合能求得完吗?
A,B,C 的值是已知的,假设 A = 1,B = 5 ,C = 5; 设lcm(x,y)为 L,gcd(x,y)为 G,可以得到一个方程 L + 5G = 5, 同时x,y的最小公倍数和最大公约数有一个关系 x * y = L * G,通过循环,可以简单粗暴的求出集合P
Matlab用循环做,必须给定上限num
A = 2;
B = 3;
C = 4;
num = 100;
for i = 1:1:num
for j = 1:1:num
if(A * lcm(i,j) - B * gcd(i,j) == C)
y= [i,j];
disp(y);
end
end
end
这道题再补充下:1.要求是编写一个程序,当输入正整数A,B,C的值之后,可以输出满足方程的集合P.
2 不要在脚本里就直接确定ABC的值,不符合提议.
3 比如,A=10,B=1,C=99时P={(11,11),(1,10),(10,1),(2,5),(5,2)}