%I#7 2013年10月31日12:17:28
%编号11,12273714150151492223092876013807825588752189872021310,
%电话:55093966638711197238101872812928876054857213174457101106502214,
%电话:25517925977422393515951603427533939306116838327475076517894931217
%N最小的数字,正好有N个不同的素因子,以N的数字结尾。
%e a(2)=12,因为12有2个素数因子(2和3),以2结尾,并且是最小的素数
%t f[n_]:=块[{k=n,inc=10^层[Log[10,n]+1]},而[Length[FactorInteger[k]]!=n、 k+=增量];k] ;(*_Robert G.Wilson v_*),2005年8月8日)
%o David Wasserman的贡献,2008年9月30日:(开始)
%o(PARI)数字计数(n,基数=10)=本地(d);如果(n==0,返回(1));d=1+地板(对数(n)/对数(底座));而(n>=基数^d,d++);而(n<基数^(d-1),d--);d;
%o leastCombo(numPrimes,firstPrime,limit,M,r)=lcHelper(numPrimes,firstPrime,limit,prod(i=第一素数,第一素数+数字素数-1,素数(i)),1,firstPrime+数字素素,M,r);
%o lcHelper(left,i,limit,minimum,found,nextP,M,r)=本地(p);if(left==0,返回(if(找到%M==r,找到,限制));p=质数(i);limit=lcHelper(left-1,i+1,limit,minimum,found*p,nextP,M,r);if(minimum*prime(nextP)/p<=limit,limit=lcHelper(left,i+1,limit),minimum*prime(nextP,/p,found,nextP+1,M,r));极限;
%o(o){
%o \如果假设失败,则此函数返回0;否则返回正确答案。使用默认值3和40,在前1000个术语中不会发生故障。
%o a(n,searchP=3,searchSize=40)=
%o本地(r,num2,num5,d,M,pLeft,assumedP,fixed,x,rNeeded,y,best,z,zz,j,z3,pLimit);
%o r=n;
%o d=数字计数(n);
%o如果(n<7,
%o while(ω(r)!=n、 r+=10);
%o返回(r)
%o);
%o while(num2<d&&!(r%2),
%o数字2++;
%o r=r/2
%o);
%o while(num5<d&&!(r%5),
%o数字5++;
%o r=r/5
%o);
%o M=10^d/2^num2/5^num5;
%o pLeft=n-如果(num2,1,0)-如果(num5,1,0);
%o搜索P=3;
%o搜索大小=40;
%o固定=2^num2*5^num5;
%o假设P=pLeft-搜索P;
%o x=3*prod(i=4,假设P+2,素数(i));
%o r所需=升力(Mod(r,M)/Mod(x,M));
%o最佳=素数(n+40)^搜索P;
%o forvec(v=向量(searchP,i,[假设P+3,假设P+searchSize+2]),y=prod(i=1,searchP、prime(v[i]));如果(y%M==r需要,最佳=min(最佳,y)),2);
%o如果(最佳==searchP^prime(n+40),返回(0));
%o y=固定*x*最佳;
%o z=固定*x*prod(i=假设P+3,pLeft+2,素数(i));
%o如果(z>=2*y,返回(0));
%o r所需=升程(Mod(r,M)/3);
%o返回(固定*3*leastCombo(pLeft-1,4,y/fixed/3,M,rNeeded));
%o}(结束)
%Y A109687[发件人_David Wasserman_,2008年9月30日]
%K基,nonn
%O 1,1号机组
%A _弗里德曼,2005年8月6日
%E a(11)-a(17)摘自_Robert G.Wilson v_,2005年8月8日
%E更正条款。删除了似乎不正确的第二个程序_David Wasserman,2008年9月30日
|