Eleven is the fifth prime number, and the smallest two-digit prime.
It's also the smallest repunit prime.
What is the next repunit prime?
The following program finds repunits with 2, 19 and 23 digits are prime. It was stopped at a number of digits of 188. No other repunit primes were found; the other repunits checked were definitely not prime; the ones identified as prime were "probably" prime to a high degree of certainty. Thus they were checked via Wolfram Alpha to assure they are indeed prime.
10 Repu=1
20 for Ndig=2 to 333
30 Repu=10*Repu+1
40 if fnPrime(Repu) then print Ndig,Repu
50 next
999 end
10000 fnOddfact(N)
10010 local K=0,P
10030 while N@2=0
10040 N=N\2
10050 K=K+1
10060 wend
10070 P=pack(N,K)
10080 return(P)
10090 '
10100 fnPrime(N)
10110 local I,X,J,Y,Q,K,T,Ans
10120 if N@2=0 then Ans=0:goto *EndPrime
10125 O=fnOddfact(N-1)
10130 Q=member(O,1)
10140 K=member(O,2)
10150 I=0
10160 repeat
10170 repeat
10180 X=fnLrand(N)
10190 until X>1
10200 J=0
10210 Y=modpow(X,Q,N)
10220 loop
10230 if or{and{J=0,Y=1},Y=N-1} then goto *ProbPrime
10240 if and{J>0,Y=1} then goto *NotPrime
10250 J=J+1
10260 if J=K then goto *NotPrime
10270 Y=(Y*Y)@N
10280 endloop
10290 *ProbPrime
10300 I=I+1
10310 until I>50
10320 Ans=1
10330 goto *EndPrime
10340 *NotPrime
10350 Ans=0
10360 *EndPrime
10370 return(Ans)
10380 '
10400 fnLrand(N)
10410 local R
10415 N=int(N)
10420 R=(int(rnd*10^(alen(N)+2)))@N
10430 return(R)
10440 '
10500 fnNxprime(X)
10510 if X@2=0 then X=X+1
10520 while fnPrime(X)=0
10530 X=X+2
10540 wend
10550 return(X)
10560 '
|
Posted by Charlie
on 2018-07-14 15:05:06 |