QBASIC Prime数字从1到var

时间:2015-03-01 10:06:58

标签: qbasic

我是Qbasic的新手,想要学习如何将素数从1打印到一个变量,该变量被设置为用户输入的数字。 请帮忙... 我尝试使用do while循环,但它不起作用。 感谢

3 个答案:

答案 0 :(得分:1)

我回答你的问题作为指导:

您需要找到输入数字的有效分隔符(n):

  

n的有效分隔符:
  如果有一个小于n/2n MOD i = 0的数字,则除以其净值为零;
  n

现在,使用其中一种方法查找素数:

  • 素数的有效分频器总数等于该数字加1,对于小于n/2sum = 1的有效分频器为1; n
  • 素数的有效分频器数为2,有效分频器的数量小于n/2count = 1为1; <SuggestedReadings> <Suggestion Text="Customer Centricity" Link="http://wdp.wharton.upenn.edu/book/customer-centricity/?utm_source=Coursera&utm_medium=Web&utm_campaign=custcent" SuggBy="Pete Fader�s" /> <Suggestion Text="Global Brand Power" Link="http://wdp.wharton.upenn.edu/books/global-brand-power/?utm_source=Coursera&utm_medium=Web&utm_campaign=glbrpower" SuggBy="Barbara Kahn�s" /> </SuggestedReadings>

答案 1 :(得分:1)

这很容易。所有你需要做的就是运行一个嵌套循环。用于检查数字是否为素数的循环以及用于显示数字的循环。

CLS
INPUT "enter a range"; a
FOR i = 1 TO a
    FOR j = 1 TO i
        IF i MOD j = 0 THEN
            check = check + 1
        END IF
    NEXT j
    IF check = 2 THEN
        PRINT i
    END IF
    check = 0
NEXT i
END

答案 2 :(得分:0)

此代码片段计算从2到较高范围的素数。

它的工作原理是将测试值除以2中的所有数字到上限范围的平方根。

PRINT "Upper value";
INPUT n
FOR l = 2 TO n
    f = -1
    FOR m = 2 TO INT(SQR(l))
        IF l / m = l \ m THEN
            f = 0
            EXIT FOR
        END IF
    NEXT
    IF f THEN
        PRINT l
    END IF
NEXT