白新岭
发表于 2021-10-17 09:00:21
SELECT 1
USE D:\方程p减2的n次方\素数表万.DBF ALIAS 素数表万
SELECT 2
USE D:\方程p减2的n次方\一加m表.DBF ALIAS 一加m表
kssj=SECONDS() &&取出开始时间
FOR i=69 TO 99 STEP 2
@12,10 SAY i
IF MOD(i,3)=0
s=3
ELSE
s=1
ENDIF
IF MOD(i,5)=0
w=5
ELSE
w=1
ENDIF
IF MOD(i,7)=0
q=7
ELSE
q=1
ENDIF
IF MOD(i,11)=0
yy=11
ELSE
yy=1
ENDIF
IF MOD(i,13)=0
ys=13
ELSE
ys=1
ENDIF
IF MOD(i,17)=0
yq=17
ELSE
yq=1
ENDIF
IF MOD(i,19)=0
yj=19
ELSE
yj=1
ENDIF
IF MOD(i,23)=0
es=23
ELSE
es=1
ENDIF
IF MOD(i,29)=0
ej=29
ELSE
ej=1
ENDIF
IF MOD(i,31)=0
sy=31
ELSE
sy=1
ENDIF
FOR j=10 TO 12000 STEP 2
@22,20 SAY j
IF MOD(j,i)=0
LOOP
ENDIF
IF MOD(j,s)=0 AND s>1
LOOP
ENDIF
IF MOD(j,w)=0 AND w>1
LOOP
ENDIF
IF MOD(j,q)=0 AND q>1
LOOP
ENDIF
IF MOD(j,yy)=0 AND yy>1
LOOP
ENDIF
IF MOD(j,ys)=0 AND ys>1
LOOP
ENDIF
IF MOD(j,yq)=0 AND yq>1
LOOP
ENDIF
IF MOD(j,yj)=0 AND yj>1
LOOP
ENDIF
IF MOD(j,es)=0 AND es>1
LOOP
ENDIF
IF MOD(j,ej)=0 AND ej>1
LOOP
ENDIF
IF MOD(j,sy)=0 AND sy>1
LOOP
ENDIF
SELECT 1
GO 1
COUNT ALL FOR 素数<=j/i TO tj
SELECT 1
GO 1
FOR k=1 TO tj
SELECT 1
ss=素数
jl=recno()
pdz=j-i*ss
SELECT 1
GO 1
COUNT NEXT i*tj+10 FOR 素数=pdz TO tj1
IF tj1=1
EXIT
ENDIF
SELECT 1
GO jl+1
ENDFOR
IF k>tj
SELECT 2
APPEND BLANK
REPLACE m值 WITH i
REPLACE n值 WITH j
ENDIF
ENDFOR
ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
查找从3到99之内的反例vfp程序,最终定稿。“1+m”,m为奇数,然后在把小于3*(1+m)的反例去掉即可。
白新岭
发表于 2021-10-17 09:01:42
SELECT 1
USE D:\方程p减2的n次方\素数表万.DBF ALIAS 素数表万
SELECT 2
USE D:\方程p减2的n次方\一加m表.DBF ALIAS 一加m表
kssj=SECONDS() &&取出开始时间
FOR i=70 TO 100 STEP 2
@12,10 SAY i
IF MOD(i,3)=0
s=3
ELSE
s=1
ENDIF
IF MOD(i,5)=0
w=5
ELSE
w=1
ENDIF
IF MOD(i,7)=0
q=7
ELSE
q=1
ENDIF
IF MOD(i,11)=0
yy=11
ELSE
yy=1
ENDIF
IF MOD(i,13)=0
ys=13
ELSE
ys=1
ENDIF
IF MOD(i,17)=0
yq=17
ELSE
yq=1
ENDIF
IF MOD(i,19)=0
yj=19
ELSE
yj=1
ENDIF
IF MOD(i,23)=0
es=23
ELSE
es=1
ENDIF
IF MOD(i,29)=0
ej=29
ELSE
ej=1
ENDIF
IF MOD(i,31)=0
sy=31
ELSE
sy=1
ENDIF
FOR j=9 TO 13999 STEP 2
@22,20 SAY j
IF MOD(j,i)=0
LOOP
ENDIF
IF MOD(j,s)=0 AND s>1
LOOP
ENDIF
IF MOD(j,w)=0 AND w>1
LOOP
ENDIF
IF MOD(j,q)=0 AND q>1
LOOP
ENDIF
IF MOD(j,yy)=0 AND yy>1
LOOP
ENDIF
IF MOD(j,ys)=0 AND ys>1
LOOP
ENDIF
IF MOD(j,yq)=0 AND yq>1
LOOP
ENDIF
IF MOD(j,yj)=0 AND yj>1
LOOP
ENDIF
IF MOD(j,es)=0 AND es>1
LOOP
ENDIF
IF MOD(j,ej)=0 AND ej>1
LOOP
ENDIF
IF MOD(j,sy)=0 AND sy>1
LOOP
ENDIF
SELECT 1
GO 1
COUNT ALL FOR 素数<=j/i TO tj
SELECT 1
GO 1
FOR k=1 TO tj
SELECT 1
ss=素数
jl=recno()
pdz=j-i*ss
SELECT 1
GO 1
COUNT NEXT i*tj+10 FOR 素数=pdz TO tj1
IF tj1=1
EXIT
ENDIF
SELECT 1
GO jl+1
ENDFOR
IF k>tj
SELECT 2
APPEND BLANK
REPLACE m值 WITH i
REPLACE n值 WITH j
ENDIF
ENDFOR
ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
查找从4到100之内的反例vfp程序,最终定稿。“1+m”,m为偶数,然后在把小于3*(1+m)的反例去掉即可。
白新岭
发表于 2021-10-17 09:55:13
偶数程序仍就没有完成使命,对于素数37,41,43,47这四个素数还没有考虑到。它们的倍数是无法合成的,所以偶数程序仅仅是适应于小于72的偶数,当到74时,已经不再适应。
白新岭
发表于 2021-10-17 09:58:44
SELECT 1
USED:\方程p减2的n次方\素数表万.DBF ALIAS 素数表万
SELECT 2
USE D:\方程p减2的n次方\一加m表.DBF ALIAS 一加m表
kssj=SECONDS() &&取出开始时间
FOR i=70 TO 100 STEP 2
@12,10 SAY i
IF MOD(i,3)=0
s=3
ELSE
s=1
ENDIF
IF MOD(i,5)=0
w=5
ELSE
w=1
ENDIF
IF MOD(i,7)=0
q=7
ELSE
q=1
ENDIF
IF MOD(i,11)=0
yy=11
ELSE
yy=1
ENDIF
IF MOD(i,13)=0
ys=13
ELSE
ys=1
ENDIF
IF MOD(i,17)=0
yq=17
ELSE
yq=1
ENDIF
IF MOD(i,19)=0
yj=19
ELSE
yj=1
ENDIF
IF MOD(i,23)=0
es=23
ELSE
es=1
ENDIF
IF MOD(i,29)=0
ej=29
ELSE
ej=1
ENDIF
IF MOD(i,31)=0
sy=31
ELSE
sy=1
ENDIF
IF MOD(i,37)=0
sq=37
ELSE
sq=1
ENDIF
IF MOD(i,41)=0
ssy=41
ELSE
ssy=1
ENDIF
IF MOD(i,43)=0
ss=43
ELSE
ss=1
ENDIF
IF MOD(i,47)=0
ssq=47
ELSE
ssq=1
ENDIF
FOR j=9 TO 13999 STEP 2
@22,20 SAY j
IF MOD(j,i)=0
LOOP
ENDIF
IF MOD(j,s)=0 AND s>1
LOOP
ENDIF
IF MOD(j,w)=0 AND w>1
LOOP
ENDIF
IF MOD(j,q)=0 AND q>1
LOOP
ENDIF
IF MOD(j,yy)=0 AND yy>1
LOOP
ENDIF
IF MOD(j,ys)=0 AND ys>1
LOOP
ENDIF
IF MOD(j,yq)=0 AND yq>1
LOOP
ENDIF
IF MOD(j,yj)=0 AND yj>1
LOOP
ENDIF
IF MOD(j,es)=0 AND es>1
LOOP
ENDIF
IF MOD(j,ej)=0 AND ej>1
LOOP
ENDIF
IF MOD(j,sy)=0 AND sy>1
LOOP
ENDIF
IF MOD(j,sq)=0 AND sq>1
LOOP
ENDIF
IF MOD(j,ssy)=0 AND ssy>1
LOOP
ENDIF
IF MOD(j,ss)=0 AND ss>1
LOOP
ENDIF
IF MOD(j,ssq)=0 AND ssq>1
LOOP
ENDIF
SELECT 1
GO 1
COUNT ALL FOR 素数<=j/i TO tj
SELECT 1
GO 1
FOR k=1 TO tj
SELECT 1
ss=素数
jl=recno()
pdz=j-i*ss
SELECT 1
GO 1
COUNT NEXT i*tj+10 FOR 素数=pdz TO tj1
IF tj1=1
EXIT
ENDIF
SELECT 1
GO jl+1
ENDFOR
IF k>tj
SELECT 2
APPEND BLANK
REPLACE m值 WITH i
REPLACE n值 WITH j
ENDIF
ENDFOR
ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
白新岭
发表于 2021-10-17 12:26:27
SELECT 1
USED:\方程p减2的n次方\素数表万.DBF ALIAS 素数表万
SELECT 2
USE D:\方程p减2的n次方\一加m表.DBF ALIAS 一加m表
kssj=SECONDS() &&取出开始时间
FOR i=70 TO 100 STEP 2
@12,10 SAY i
IF MOD(i,3)=0
s=3
ELSE
s=1
ENDIF
IF MOD(i,5)=0
w=5
ELSE
w=1
ENDIF
IF MOD(i,7)=0
q=7
ELSE
q=1
ENDIF
IF MOD(i,11)=0
yy=11
ELSE
yy=1
ENDIF
IF MOD(i,13)=0
ys=13
ELSE
ys=1
ENDIF
IF MOD(i,17)=0
yq=17
ELSE
yq=1
ENDIF
IF MOD(i,19)=0
yj=19
ELSE
yj=1
ENDIF
IF MOD(i,23)=0
es=23
ELSE
es=1
ENDIF
IF MOD(i,29)=0
ej=29
ELSE
ej=1
ENDIF
IF MOD(i,31)=0
sy=31
ELSE
sy=1
ENDIF
IF MOD(i,37)=0
sq=37
ELSE
sq=1
ENDIF
IF MOD(i,41)=0
ssy=41
ELSE
ssy=1
ENDIF
IF MOD(i,43)=0
sss=43&& ss下边素数用着,出现了错误
ELSE
sss=1
ENDIF
IF MOD(i,47)=0
ssq=47
ELSE
ssq=1
ENDIF
FOR j=9 TO 13999 STEP 2
@22,20 SAY j
IF MOD(j,i)=0
LOOP
ENDIF
IF MOD(j,s)=0 AND s>1
LOOP
ENDIF
IF MOD(j,w)=0 AND w>1
LOOP
ENDIF
IF MOD(j,q)=0 AND q>1
LOOP
ENDIF
IF MOD(j,yy)=0 AND yy>1
LOOP
ENDIF
IF MOD(j,ys)=0 AND ys>1
LOOP
ENDIF
IF MOD(j,yq)=0 AND yq>1
LOOP
ENDIF
IF MOD(j,yj)=0 AND yj>1
LOOP
ENDIF
IF MOD(j,es)=0 AND es>1
LOOP
ENDIF
IF MOD(j,ej)=0 AND ej>1
LOOP
ENDIF
IF MOD(j,sy)=0 AND sy>1
LOOP
ENDIF
IF MOD(j,sq)=0 AND sq>1
LOOP
ENDIF
IF MOD(j,ssy)=0 AND ssy>1
LOOP
ENDIF
IF MOD(j,sss)=0 AND sss>1 && ss下边素数用着,出现了错误
LOOP
ENDIF
IF MOD(j,ssq)=0 AND ssq>1
LOOP
ENDIF
SELECT 1
GO 1
COUNT ALL FOR 素数<=j/i TO tj
SELECT 1
GO 1
FOR k=1 TO tj
SELECT 1
ss=素数
jl=recno()
pdz=j-i*ss
SELECT 1
GO 1
COUNT NEXT i*tj+10 FOR 素数=pdz TO tj1
IF tj1=1
EXIT
ENDIF
SELECT 1
GO jl+1
ENDFOR
IF k>tj
SELECT 2
APPEND BLANK
REPLACE m值 WITH i
REPLACE n值 WITH j
ENDIF
ENDFOR
ENDFOR
=MESSAGEBOX("运行时间:"+LTRIM(STR(INT((SECONDS()-kssj)/60)))+"分"+LTRIM(STR(MOD(SECONDS()-kssj,60),5,2))+"秒",64,"运行时间提示")
上边程序,素数43的设置有误,与素数的变量名相同,导致结果错误。
白新岭
发表于 2022-1-10 07:17:57
对一个问题产生兴趣,才会有动力!
白新岭
发表于 2022-1-23 09:19:00
往往自己感兴趣的话题,并不一定引起共鸣。
gxqcn
发表于 2022-1-23 20:25:54
1. 请勿再帖代码,尤其是这些代码根本无助于你与人进一步沟通时,废话太多,别总怨天尤人;
2. 当你号称“合成方法论已经彻底证明了歌猜”时,我觉得有必要重新评估一下这类帖子的价值。。。