Write a SV constraint for below NxN Matrix. Lets say N-=3 , Conditions 1 ] - All diagonal elements are prime numbers. Condition 2]. Non Daigonal elements are selected such that sum now row =0

Written below code . need help in solving 2nd part of question . Can somebody help me ?

class matrix_NxN ;
rand int unsigned array[3][3];  // Lets say N=3 ; 
rand int a;
rand int q_unique[$] ;

constraint range{a inside {[1:100]};}
constraint c1 { unique {array};}
constraint c2 { !(a inside {array});}

constraint c3 { unique {q_unique};}
constraint c4 { !(a inside {q_unique});}


 function int prime(int a);
  if(a<=1)
  return 2;
  for(int i=2;i<a;i++)
  begin
   if(a%i==0)
    return 3; // 3 is one of prime number 
   else
    prime=a;
  end
 endfunction


function void post_randomize();
int unsigned cnt = 0 ;
int unsigned prime_num ;

for (int k =0 ; k<30 ;k++) begin 
   prime_num =$urandom_range(1,100);
   prime_num = prime(prime_num);
   q_unique.push_back(prime_num);
end 

 foreach (array[i]) begin 
   foreach (array[,j]) begin 
   if ((i+j)%2 ==1) begin 
      array[i][j]  = $urandom_range (101,200) ; 
   end 
   else begin 
    q_unique = q_unique.unique();
    array[i][j]  =  q_unique.pop_front();
   cnt++; 
   end 
 end 
end 

q_unique.delete();

endfunction   

endclass


module matrix_gen ;
matrix_NxN mat_h ;

initial begin
mat_h = new();
repeat (5) begin 
mat_h.randomize();
$display("Matrix =  \n");
for (int i=0 ; i<3 ; i++) begin 
$display("%p\n",mat_h.array[i]);
end
end 
end 

endmodule 

Output-
Matrix =

# 
# '{3, 158, 13}
# 
# '{101, 31, 146}
# 
# '{41, 121, 53}