Create a chain of consecutive digits starting with 1 and following 9 by 0:
123456789012345...How many digits are needed to obtain the 1st prime number?
Well, the 1st prime number is 2, and you have one right there as the second digit.
If you mean When will the entire string of digits first represent a prime number, I doubt that it ever will. The program below gets to a length of over 1000 digits without finding a prime. (It stops with an overflow in line 40).
10 S=""
20 while Found=0
30 for I=1 to 10
40 S=S+cutspc(str(I @ 10))
50 V=val(S)
60 P=prmdiv(V)
70 if p>1 then if P=V or fnPrime(v) then print V:Found=1
80 next
90 wend
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 2015-04-10 20:46:20 |