海里游 发表于 2011-10-26 18:42:21

哪位高手帮我翻译一个程序

我目前有一个难题,到这里来请求帮助,希望高手能伸出援手。
我有一个等着急用的用VFP语言编写的程序,想用郭老师的代码实现大数快速运行测试,虽然郭老师的代码可以任意下载,可是我只懂一点VFP,可惜郭老师那么好的代码我不会用,现在我希望有高手用郭老师的代码把我的程序翻译过来。下面的程序就是我说的代码,虽然高手现在都不用这个过时的代码,但我的程序代码旁边都有说明,所以代码不会成为翻译障碍的。代码下面就是测试数据,我的程序最大只能运行8-9位数字,用郭老师的程序代码那怕能运行出十几位数字我满足了,如果真的能运行出十位数字以上,我愿意用1000元表示感谢!我的QQ:2624678166

D=2 &&要输入数:D=
W=4096 &&要输入数:W=
L=11111111111&& 待输出T的最大值,若能运行大数可随时加大
k=2*W &&常量
for b=1 to L && 进入外循环从b=1开始, L是b的最大值
T=k*b+1   &&用前面得到的b和已知的k计算T=k*b+1
M1=2&&常量
u=mod(M1,T) &&计算M1与T的余数u,这是后面的参照值
for v=1 to W && 进入二层循环从v=1开始, W是v的最大值
M2=D^v &&用前面得到的v和已知的D计算M2=D^v
ifM2>T-1 and M2>0 &&如果M2>T-1,则取大于T-1的最小值M2(其实是取v的最小值)
M=D^v+1 &&用前面得到的最小值v和已知的D计算M=D^v+1
for i=v to W&& 进入内循环次数从i=v开始,W是i的最大值
F=mod(M,T)&&计算M与T的余数F
M=(F-1)*D+1&&用前面得到的F与已知的D计算新的M,再返回上一步。
if  F=0&&如果 F=0
   if  i=W&&并且如果 i=W
   F1=mod(T-1,W) &&计算T-1与W的余数F1
   if F1=0&&如果 F1=0
    ?'T=',T   &&输出:T=
       endif  &&这是与 if 对应的循环语句
    endif
    endif
ENDFOR  &&这是与forto 对应的循环语句
EXIT  && 这是取M2最小值(也就是v的最小值)的循环语句
endif
ENDFOR
ENDFOR
测试数据
1、当输入D=2、W=4096, L=4000000011111111111111111111时
输出应该是 114689 、 26017793 、 63766529 、 190274191361 、 1256132134125569 、  568630647535356955169033410940867804839360742060818433
2、当输入D=2、W=2048, L=4000000011111111111111111111时
输出应该是319489、974849、167988556341760475137、3560841906445833920513等
3、当输入D=2、W=8192, L=4000000011111111111111111111时
输出应该是 2710954639361 、 2663848877152141313 、 3603109844542291969 、319546020820551643220672513
页: [1]
查看完整版本: 哪位高手帮我翻译一个程序