第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

素數(shù)指示器將巨大的非素數(shù)指示為素數(shù)

素數(shù)指示器將巨大的非素數(shù)指示為素數(shù)

慕萊塢森 2023-06-27 16:09:24
def main():    try:        a = int(input())        if isinstance(a, int):            a = int(a)            if a ==2:                print('YES')            if a > 1:                for i in range(2, a):                    if a % i == 0:                        print('NO')                        break                    else:                        print('YES')                        break            else:                print('NO')        else:            print('NO')    except EOFError:        print('NO')    except ValueError:        print('NO')main()這段代碼可以工作,但它正在計算巨大的數(shù)字作為素數(shù),例如 3456734572525。它在 5 個測試用例中的 4 個測試用例中是成功的。首先我認為它在 0 或十進制數(shù)字上失敗,但事實并非如此。
查看完整描述

3 回答

?
慕沐林林

TA貢獻2016條經(jīng)驗 獲得超9個贊

for 循環(huán)永遠不會運行到最后,因為無論a % i == 0您是否會打破循環(huán)。您應該將您的代碼移到print("YES")循環(huán)之外并使用return代替break來確保您的函數(shù)在循環(huán)中斷時不會運行此代碼。嘗試這個:


def main():

    try:

        a = int(input())

        if isinstance(a, int):

            a = int(a)

            if a ==2:

                print('YES')

            if a > 1:

                for i in range(2, a):

                    if a % i == 0:

                        print('NO')

                        return

                print('YES')

                return

            else:

                print('NO')

        else:

            print('NO')

    except EOFError:

        print('NO')

    except ValueError:

        print('NO')

main()


查看完整回答
反對 回復 2023-06-27
?
繁花如伊

TA貢獻2012條經(jīng)驗 獲得超12個贊

您的代碼實際上從一開始就是不正確的。

在一次“if”檢查之后,您在循環(huán)內使用“break”,所以基本上您只檢查一次。所以你的代碼所做的就是判斷這個數(shù)字是否能被 2 整除。


try:

    a = int(input())

    flag = 0

    if isinstance(a, int):

        a = int(a)

        if a==1:

            print('Neither')

        elif a ==2:

            print('YES')

        else:

            for i in range(2, a):

                if a % i == 0:

                    flag=1

                    break

    else:

        print('NO')

except EOFError:

    print('NO')

except ValueError:

    print('NO')

if flag:

    print('NO')

else:

    print('YES')


查看完整回答
反對 回復 2023-06-27
?
回首憶惘然

TA貢獻1847條經(jīng)驗 獲得超11個贊

你在第一次運行時打破了循環(huán),

假設你把 9 放進去,想想它

會失敗 == 2 條件

,然后達到 % i ==0 條件,并且 9%2 = 1,它會返回是


除此之外,該程序還有很多錯誤,但主要問題是在第一次運行后中斷,這沒有任何意義,如果您刪除了中斷并在 else 上打印 if a%i==0 它將起作用,但是您可以在那里進行許多優(yōu)化。

查看完整回答
反對 回復 2023-06-27
  • 3 回答
  • 0 關注
  • 216 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號