For J and L (J<L) I want to find that values of p and q which satisfies mod(((i^b-​i^a)*(i^d-​i^c)),j)~=​0 for all values of 0<=a<b<=J-1 and 0<=c<d<=L-1. If mod(((i^b-​i^a)*(i^d-​i^c)),j)==​0 at any stage we break the loop and go for next values of p and q

1 次查看(过去 30 天)
J=input('Value of J: ');
L=input('Value of L: ');
for j = L:6;
for i = 2:j-1;
for a=0:J-1;
for b=a+1:J-1;
for c = 0:L-1;
for d = c+1:L-1;
if mod(((i^b-i^a)*(i^d-i^c)),j)~=0
p_q=[i,j]
end
end
end
end
end
end
end
output:
p_q = 2 3
p_q = 2 3
p_q = 2 4
p_q = 2 4
p_q = 2 4
p_q = 2 5
p_q = 2 5
p_q = 2 5
p_q = 3 5
p_q = 3 5
p_q = 3 5
p_q = 4 5
p_q = 4 5
p_q = 2 6
and so on.
Here the required answer is p=2 and q=5; it is the only combination for which mod(((i^b-i^a)*(i^d-i^c)),j)~=0 for any values of a,b,c,d. But here it is showing so many answers. Kindly help me.

采纳的回答

Matt J
Matt J 2019-6-5
编辑:Matt J 2019-6-5
[a,b,c,d]=ndgrid(0:J-1,0:J-1, 0:L-1, 0:L-1);
k=a<b & c<d;
[a,b,c,d]=deal( a(k), b(k), c(k), d(k)); %all allowed combinations
p_q=cell(6,6);
for j = L:6
for i = 2:j-1
if all( mod( (i.^b-i.^a).*(i.^d-i.^c) ,j) )
p_q{i,j} =[i,j];
end
end
end
p_q=vertcat(p_q{:})
  3 个评论
Matt J
Matt J 2019-6-5
But d cannot equal 3 when L=3. In your original post, you say that 0<=d<=L-1, so the maximum value d can assume is 2.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by