You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
409 B
Matlab
24 lines
409 B
Matlab
3 years ago
|
N=1e7;
|
||
|
|
||
|
for n=2:N
|
||
|
% A contains the unique prime factors of n; M their multiplicities
|
||
|
[A,M]=factor(n);
|
||
|
l=length(A);
|
||
|
s=1;
|
||
|
for i=1:l
|
||
|
% formula for the sum of divisors of p^k
|
||
|
c(i)=((A(i)^(M(i)+1))-1)/(A(i)-1);
|
||
|
s*=c(i);
|
||
|
end
|
||
|
if 2*n==s
|
||
|
printf("%d is Perfect!\n",n)
|
||
|
m=n;
|
||
|
k=0;
|
||
|
while mod(m,2)==0
|
||
|
m=m/2;
|
||
|
k++;
|
||
|
end
|
||
|
k++;
|
||
|
printf("The corresponding Mersenne prime is %d\n",((2^k)-1))
|
||
|
end
|
||
|
end
|