function Guess_Prime
pp=[];
n=10
for a=0:n
for b=0:n
if a^2+b^2>1
z=a+b*i;
[ind fac]=Find_Factor(z);
if ind==1
pp=[pp z];
end
end
end
end
pp
q1=round(abs(pp.^2));
q2=isprime(q1);
q3=q1.^(1/2);
pos=find(q2==0);
pp(pos)
q3
%non_prime=q1(pos)
%x=sqrt(non_prime);
%x=round(x);
%x=sort(x)
pos=find(q2==1);
is_prime=sort(q1(pos))
function [ind fac]=Find_Factor(z)
Nr=abs(z); %模函数
Nr2=(real(z))^2+(imag(z))^2;
ind=1;fac=1;
if ~isprime(Nr2)
for x=0:floor(Nr)
for y=0:floor(Nr)
if x^2+y^2<Nr2 && x^2+y^2>1
w=z/(x+i*y);
if is_gauss_integer(w)
ind=0; fac=x+i*y;break;
end
end
end
end
end
function ind=is_gauss_integer(z) %判断z是否是Gauss整数;
a=real(z); b=imag(z);
eps=10^(-10);
if abs(a-round(a))<eps && abs(b-round(b))<eps
ind=1;
else
ind=0;
end