【导语】“橙景”通过精心收集,向本站投稿了6篇vf超级素数问题一,下面是小编为大家带来的vf超级素数问题一,希望大家能够喜欢!
篇1:vf超级素数问题一
***
*** FUNCTION SP V1.00 (C)Copyright By Tiger5392
***
*** 一个素数,依次从个位数开始去掉一位,两位,,。。所得的各数仍然是素数,称为超级素数。
***本程序就是用来判断一个数是不是超级素数。
***
*** 用法:?SP(nExpr)
*** 参数:nExpr为数值型数据,它为大于1的整数。
*** 返回:若为超级素数则返回逻辑真(.T.);否则返回逻辑假(.F.)。
***
PARAMETERS nNum
PRIVATE nNum,nNum1,cNum,nCnt1,nCnt2,lOk
SET TALK OFF
IF TYPE([nNum])!=CHR(78)
RETURN [没有参数或参数不为数值]
ENDIF
IF INT(nNum)!=nNum OR nNum<2
RETURN [参数应为大于1的正整数]
ENDIF
cNum=ALLTRIM(STR(nNum))
lOk=.T.
FOR nCnt1=0 TO LEN(cNum)-1
nNum1=VAL(SUBSTR(cNum,1,LEN(cNum)-nCnt1))
IF nNum1=1
lOk=.F.
EXIT
ENDIF
FOR nCnt2=2 TO SQRT(nNum1)
IF MOD(nNum1,nCnt2)=0
lOk=.F.
EXIT
ENDIF
ENDFOR
ENDFOR
RETURN lOK
***EOF:
篇2:vf 超级素数问题三
FUNCTION IsSupperPrime
PARAMETERS nNum
PRIVATE nNum,nNum1,cNum,nCnt,lIsSupperPrime
IF SUBSTR(ALLTRIM(STR(nNum)),1,1)$“14689”
RETURN .F. &&若数值最高位不为2,3,5,7之一,则判定该数不为超级素数
ENDIF
FOR nCnt=0 TO LEN(ALLTRIM(STR(nNum)))-2
nNum1=INT(nNum/10^nCnt) &&将原数去掉从个位开始的nCnt位
cNum=SUBSTR(ALLTRIM(STR(nNum1)),2) &&提取除高位外的其余部分
IF “0”$cNum OR “2”$cNum OR “4”$cNum OR “5”$cNum OR “6”$cNum OR “8”$cNum
RETURN .F. &&要判断的数除高位外其余数值中含有0,2,4,5,6,8之一,则判定不为素数
ENDIF
IF IsPrime(nNum1)=.F.
RETURN .F. &&去掉nCnt位后不为素数,则判定不为超级素数
ENDIF
ENDFOR
RETURN .T.
*** EOF(): IsSupperPrime By Tiger5392 (C)Copyright 2006-2006
FUNCTION IsPrime
PARAMETERS nNumber
PRIVATE nNumber,nCnt
FOR nCnt=2 TO SQRT(nNumber)
IF nNumber%nCnt=0
RETURN .F.
ENDIF
ENDFOR
RETURN .T.
*** EOF(): IsPrime
篇3:vf判断一个数是否为超级素数
*** 判断一个数是否为超级素数
***
*** 相关知识
*** 超级素数:一个素数,去掉个位是素数;去掉个位和十位也是素数;......;
*** 直到保留到最高位依然是素数,这个素数称为超级素数,
***
*** 编程思路
*** 1.素数一定不能是1。给定的数若为超级素数,则高位不能是1。
*** 2.素数一定不能被2整除(2除外)。给定的数若为超级素数,则各位数字不能含有0,2,4,6,8(高位2除外)。
*** 3.素数一定不能被5整除(5除外)。给定的数若为超级素数,则各位数字不能含有0,5(高位5除外)。
*** 4.经过分析,有这样的结论:
*** (1)高位可能为2,3,5,7,而绝对不能是0,1,4,6,8,9;
*** (2)除高位外的其它各位数字可能是1,3,7,9,而绝对不能是0,2,4,5,6,8。
***
PARAMETERS nNum
PRIVATE nNum,nNum1,cNum,nCnt,lIsSupperPrime
IF TYPE(“nNum”)#CHR(78) OR INT(nNum)#nNum OR nNum<1 &&参数为大于0的整数
RETURN .F.
ENDIF
lIsSupperPrime=INLIST(VAL(SUBSTR(ALLTRIM(STR(nNum)),1,1)),2,3,5,7) &&提取高位数字并判断是否为素数
IF lIsSupperPrime=.F.
RETURN .F.
ENDIF
FOR nCnt=0 TO LEN(ALLTRIM(STR(nNum)))-1
nNum1=INT(nNum/10^nCnt) &&将原数去掉从个位开始的nCnt位
cNum=SUBSTR(ALLTRIM(STR(nNum1)),2) &&提取除高位外的其余部分
IF “0”$cNum OR “2”$cNum OR “4”$cNum OR “5”$cNum OR “6”$cNum OR “8”$cNum
lIsSupperPrime=.F.
EXIT
ELSE
lIsSupperPrime=.T.
ENDIF
IF !IsPrime(nNum1)
lIsSupperPrime=.F.
EXIT
ENDIF
ENDFOR
RETURN lIsSupperPrime
*** EOF: IsSupperPrime By Tiger5392 (C)Copyright 2006-2006
FUNCTION IsPrime
PARAMETERS nNumber
PRIVATE nNumber,lOk,nCnt
IF nNumber<10 &&10以内的数直接判断是否为素数
lOk=INLIST(nNumber,2,3,5,7)
ELSE
IF MOD(nNumber,2)=0 OR MOD(nNumber,3)=0 OR MOD(nNumber,5)=0 OR MOD(nNumber,7)=0
lOk=.F.
ELSE
lOk=.T.
FOR nCnt=2 TO SQRT(nNumber)
IF MOD(nNumber,nCnt)=0
lOk=.F.
EXIT
ENDIF
ENDFOR
ENDIF
ENDIF
RETURN lOk
*** EOF(): IsPrime
篇4:vf统计X以内的超级素数的个数
***
*** 统计X以内的超级素数的个数 By Tiger5392 (C)Copyright 2006-2006
***
*** 语法
*** ?超级素数(nExpr)
*** nExpr:正整数,表示要计算从1到该数之间的超级素数
*** 返回:超级素数的个数
***
*** 相关知识
*** 超级素数:一个素数,去掉个位是素数;去掉个位和十位也是素数;
*** 直到保留到最高位依然是素数,这个素数称为超级素数,
***
PARAMETERS nNum
PRIVATE nNum,tStartTime,nTotal,nCnt,lIsSupperPrime
CLEAR
tStartTime=SECONDS()
nTotal=0 &&超级素数的个数的初始值
FOR nCnt=1 TO nNum &&nNum以内的数都需要进行判断
IF IsSupperPrime(nCnt)
nTotal=nTotal+1
* ?STR(nTotal,5)+STR(nCnt,10)+STR(SECONDS()-tStartTime,10,3)
ENDIF
ENDFOR
?“Total Time:”+STR(SECONDS()-tStartTime,10,3)+“ Seconds”
?“Total Prime Numbers:”+STR(nTotal,5)+“(1-”+ALLTRIM(STR(nNum))+“)”
RETURN nTotal
*** EOF(): CSP By Tiger5392 (C)Copyright 2006-2006
FUNCTION IsSupperPrime
PARAMETERS nNum
PRIVATE nNum,nNum1,cNum,nCnt,lIsSupperPrime
IF SUBSTR(ALLTRIM(STR(nNum)),1,1)$“14689”
RETURN .F. &&若数值最高位不为2,3,5,7之一,则判定该数不为超级素数
ENDIF
FOR nCnt=0 TO LEN(ALLTRIM(STR(nNum)))-2
nNum1=INT(nNum/10^nCnt) &&将原数去掉从个位开始的nCnt位
cNum=SUBSTR(ALLTRIM(STR(nNum1)),2) &&提取除高位外的其余部分
IF “0”$cNum OR “2”$cNum OR “4”$cNum OR “5”$cNum OR “6”$cNum OR “8”$cNum
RETURN .F. &&要判断的数除高位外其余数值中含有0,2,4,5,6,8之一,则判定不为素数
ENDIF
IF IsPrime(nNum1)=.F.
RETURN .F. &&去掉nCnt位后不为素数,则判定不为超级素数
ENDIF
ENDFOR
RETURN .T.
*** EOF(): IsSupperPrime By Tiger5392 (C)Copyright 2006-2006
FUNCTION IsPrime
PARAMETERS nNumber
PRIVATE nNumber,nCnt
FOR nCnt=2 TO SQRT(nNumber)
IF nNumber%nCnt=0
RETURN .F.
ENDIF
ENDFOR
RETURN .T.
*** EOF(): IsPrime By Tiger5392 (C)Copyright 2006-2006
篇5:NYOJ孪生素数问题
时间限制:3000 ms | 内存限制:65535 KB 难度:3
描述
写一个程序,找出给出素数范围内的所有孪生素数的组数,一般来说,孪生素数就是指两个素数距离为2,近的不能再近的相邻素数。有些童鞋一看到题就开始写程序,不仔细看题,咱们为了遏制一下读题不认真仔细的童鞋,规定,两个素数相邻为1的也成为孪生素数。
#include
int f[1000010]={1,1}; //内存居然不能开1000000,要大一点,否则会runtime error!!!!!!!!!!!!!!!!
int s[1000010];
bool is_prime(int n)
{
int i;
for(i=2;i
输入
第一行给出N(0 接下来组测试数据给出m,表示找出m之前的所有孪生素数,
(0 输出
每组测试数据输出占一行,该行为m范围内所有孪生素数组数。
样例输入
1
14
样例输出
4
代码:
int f[1000010]={1,1}; //内存居然不能开1000000,要大一点,否则会runtime error!!!!!!!!!!!!!!!!
int s[1000010];
bool is_prime(int n)
{
int i;
for(i=2;i
篇6:相遇问题(一)
教学目标
(一)理解相遇问题的特点,并学会解答求路程的相遇问题。
(二)通过观察、比较、分析,提高学生灵活解答应用题的能力,培养学生合作意识。
教学重点和难点
重点:掌握求路程的相遇问题的解题方法。
难点:理解相遇时,两人所走路程的和正好是两地的距离;相遇时间为两人共同所走的同一时间。
教学过程设计
(一)复习准备
1.口头列式并计算:
小明每分走50米,小华每分走60米。
(1)小明5分走多少米?(50×5=250(米)。)
(2)小华5分走多少米?(60×5=300(米)。)
(3)小明、小华5分共走多少米?(①50×5+60×5=550(米);②(50+60)×5=550(米)。)
(4)小明5分比小华少走多少米?(①60×5-50×5=50(米);②(60-50)×5=50(米)。)
2.小结:行程问题的三量关系是什么?(速度×时间=路程;路程÷速度=时间;路程÷时间=速度。)
(二)学习新课
1.认识相遇问题。
(1)请两名同学到教室前边迎向走,相遇为止。
(2)同学们注意观察并说出他们是怎么走的?(同时,从两地,相对而行。)
(3)再走一遍,注意观察两人之间的距离有什么变化?(两人之间的距离越来越近,最后变为零。)
教师:当两人之间的距离变为零时,我们就说两人“相遇”。
具有“两物、同时从两地相对而行”这种运动特点的行程问题,叫做行程问题中的“相遇问题”。(板书:相遇问题)
(4)相遇问题与以前学习的行程问题有什么不同?(以前学习的行程问题是研究一个物体的运动情况,相遇问题是研究两个物体同时运动的情况。)
2.准备题。
张华家距李诚家390米。两人同时从家里出发,向对方走去。张华每分走60米,李诚每分走70米。
(1)学生打开书,看线段图填表。
走的时间/张华走的路程/李诚走的路程/两人所走路程的和/现在两人的距离
(2)同桌二人用一把尺子、两块橡皮合作演示张华与李诚的行走过程,并说出每过1分后,两人所走路程的和与现在两人的距离。
(3)思考:
①出发3分后,两人之间的距离变成了多少?(出发3分后,两人之间的距离变成了零。)
说明3分后,两人相遇了。
②两人所走路程的和与两家的距离有什么关系?(两人所走路程的和+现在两人的距离=两家的距离。当3分后,两人相遇时,即两人之间的距离为零时,两人所走路程的和就与两家的距离相等。)
小结:相遇时,两人所走路程的和就是两家的距离。
3.学习例5:
小强和小丽同时从自己家里走向学校,小强每分走65米,小丽每分走70米。经过4分,两人在校门口相遇。他们两家相距多少米?
(1)此题是不是相遇问题?怎么看出来的?
(2)学生用学具演示小强和小丽的行走过程。
思考并讨论:
①校门口是否在两家的中点?为什么?(小强的速度比小丽的慢,相遇时离小强家较近。)
②根据题意画出线段图。
③两人4分后在校门口相遇,说明他们两家相距的米数正好是什么?(4分后相遇,说明他们两家相距的米数正好等于4分所走的路程的和。)
(3)怎样求两人4分走的路程和呢?
学生列式计算,并讲解。
解法1:
答:他们两家相距540米。
解法2:
重点理解第二种解法。
①两人同时走1分,他们之间的距离有什么变化?(学生演示学具,缩短了65+70=135(米)。)
1分后缩短的'135米,叫什么呢?(小强的速度+小丽的速度=速度和)
②2分后缩短了几个速度和?(学生演示学具)
③3分后缩短了几个速度和?
④4分后缩短了几个速度和?
小结:速度和与两家的距离有什么关系?
速度和×相遇时间=路程和。
(4)比较以上两种解法有什么联系和区别?哪种解法简单?为什么?
讨论得出:
区别:从数量关系上看,第一种解法是用两人各自的速度乘以时间,得出两人各自走的路程,然后再求两人所走路程的和;第二种解法是根据两人同时出发后相遇,所走时间相同,可以先算出两人每分一共走多少米?也就是先求“速度和”,再乘以时间。
联系:从数学知识上看,两种解法的算式之间的联系正好符合乘法分配律。
第二种解法比较简便,它是第一种解法的简便运算。
(三)巩固反馈
1.P59“做一做”。
(1)学生独立解答后,分析解题思路,订正。
解法1:54×5+52×5=270+260=530(米)。
解法2:(54+52)×5=106×5=530(米)。
(2)用哪种方法解答?((44+52)×2.5=96×2.5=240(千米)。)
2.研究 P61:2。
(1)思考:这题是不是相遇问题?它与相遇问题有什么不同?(相遇问题:相对而行;而此题:相背而行。)
(2)怎样解答?((44.5+38.5)×3=83×3=249(千米)。)
为什么解答方法与相遇问题相同?(相遇问题:两车之间距离在缩短;相背问题:两车之间距离在扩大。所求路程都是两车在相同时间内所行路程的和,所以解答方法相同。)
3.将例题改编成:
(1)如果同时行5分,会出现什么情况?此时两人相距多少米?
(65+70)×(5-4)=130(米)。)
(2)如果4分后两人还相距150米,他们两家相距多少米?
(65+70)×40+150=690(米)。)
(3)如果小强先走2分后小丽才出发,经过4分相遇,两家相距多少米?
(①(65+70)×4+65×2=670(米);②65×(4+2)+70×4=670(米)。)
4.课后作业;P61:1,3。
课堂教学设计说明
相遇问题是研究两个物体同时运动的情况,两个物体的运动情况是多种多样的。相遇问题关键是要弄清每经过一个单位时间,两个物体之间的距离的变化情况。由于学生在这方面的生活经验较少,往往不易理解相向运动的变化特点。因此在复习了行程问题的速度、时间和路程的关系后,通过两名同学的表演,引导学生观察、理解相遇问题的特点。又多次通过用学具演示及同桌的合作,不仅使学生理解了什么是相遇,相遇时两人所走路程的和正好是两地的距离及相遇时间为两人共同所走的同一时间这一教学难点,还提高了学生动手操作的能力,培养了学生的合作意识。
练习的设计由易到难,在学生掌握了基本的相遇问题的解答方法后,又出现了各种变化情况,有利于防止学生死套公式,形成思维定势,提高学生灵活解答应用题的能力。
板书设计
★ 超级堂妹
★ 阳光超级励志句子
vf超级素数问题一(推荐6篇)




