| 发表于:2007-08-23 15:56:223楼 得分:0 |
你也可以用以下代码,方法和你的代码一样!,如果有必要可以加一个进度条. private sub command2_click() doevents unload me end sub private sub command1_click() dim p(3) as integer, pan as boolean, n as integer dim dd as boolean, ds as boolean pan = true n = 0 for i = 1000 to 9999 label1.caption = "正在处理数字: " + str(i) for j = 2 to sqr(i - 1) '判断是不是素数 if i mod j = 0 then pan = false end if next j doevents if pan = false then pan = true else num = i '取得各位数字 p(0) = int(num / 1000) p(1) = int((num - p(0) * 1000) / 100) p(2) = int((num - int(num / 100) * 100) / 10) p(3) = int(num - p(0) * 1000 - p(1) * 100 - p(2) * 10) dd = differ(p) doevents ds = sushu(p) doevents if dd = true and ds = true then list1.additem str(i), n label1.caption = label1.caption + chr(13) + chr(10) + "符合数字: " + str(i) n = n + 1 end if end if next i end sub private function differ(p() as integer) as boolean '判断各位数字互不相同 for i = 0 to 3 for j = 0 to 3 if i <> j then if p(i) = p(j) then differ = false exit function end if end if next j doevents next i differ = true end function private function sushu(p() as integer) as boolean '判断各位数字是否是素数 for i = 0 to 3 for j = 2 to p(i) - 1 if p(i) mod j = 0 then sushu = false exit function end if next j doevents next i sushu = true end function | | |
|