bob 发表于 2009-12-23 08:42:54

经典计算教程02-求素数

本帖最后由 bob 于 2009-12-23 08:44 编辑

给出结果,隔天给代码。还是望新手多参加,老鸟多飘过!

链接上篇:经典计算教程01-电脑猜数

求3~1000之间的素数。素数或称质素,即指除了1和它本身之外不能被其他整数整除的大于等于2的整数。

判别方法很多,不要求给出很精炼的代码,本文目的也只是为了学习循环结构而已。



bob 发表于 2009-12-23 08:43:18

暂未隔天写分析~~

kn007 发表于 2009-12-23 10:30:11

“新手”来报道,另外 质素 应改为 质数

#include <Array.au3>
Dim $i,$a=0,$b,$N
For $i = 3 To 1000 Step 2
        $a = 0
        For $b IN $N
                        If Mod($i, $b) = 0 Then
                                        $a = 1
                                        $N=Ubound($N)-1
                                        ExitLoop
                        EndIf
        Next
        If $a = 0 Then
                        Redim $N
                        $N = $i
        EndIf
Next
_ArrayDisplay($N)

wwant 发表于 2009-12-23 12:11:25

我一般都是效率最低$_var_min = 3
$_var_max = 100
$_var_result =""
$_var_boolean = "no"

For $i = $_var_min to $_var_max
        $j = 2
        $_var_boolean = "no"
        Do
                If ($i/$j) = Ceiling($i/$j) Then
                        $_var_boolean = "yes"
                        ExitLoop
                EndIf
                ;$_var_result=$_var_result&@CRLF&$i
                $j += 1
        Until $j>=Ceiling(Sqrt ($i)+0.499999999)
        if $_var_boolean = "no" then $_var_result=$_var_result&@CRLF&$i
Next
MsgBox(4096,"x",$_var_result)

bob 发表于 2009-12-23 17:30:10

呵呵,四楼Sqrt用的很好,效率比3楼要高点!

kn007 发表于 2009-12-23 20:10:35

4楼的不错,学习了。。。我新手来着的,不会写其他,只会这个

298311657 发表于 2009-12-23 22:48:59

#include <Array.au3>
Local $n=1000,$flag=False,$a
For $i = 3 To $n Step 2
        $flag=False
        For $s = 1 To $a
                If Mod($i,$a[$s]) <> 0 Then
                        $flag=True
                Else
                        $flag=False
                        If $i<>$a[$s] Then ExitLoop
                EndIf
        Next       
        If $flag=True Or $i = 3 Then
      Redim $a
      $a = $i
                $a=Ubound($a)-1
        EndIf
Next
_ArrayDisplay($a, $n&"以内的素数")先把3放进素数数组,然后for循环检测当前数是否可以被素数数组内的数整除,把不能整除的加入素数数组

kn007 发表于 2009-12-24 08:56:01

楼上的跟我的很相似嘛!?

gapkiller 发表于 2009-12-24 10:22:55

我也来玩一下
$ss=""
For $i=3 To 10000
        For $j=2 To Sqrt($i)
                If Mod($i,$j)=0 Then ContinueLoop 2
        Next
        $ss &= $i&" "
Next
MsgBox(0,"sushu",$ss)

刀枪不入 发表于 2010-6-16 20:26:46

学习中,谢了

masterpcc 发表于 2010-6-16 20:46:18

新手!!学习了
页: [1]
查看完整版本: 经典计算教程02-求素数