web-dev-qa-db-ja.com

数値が別の数値で割り切れるかどうかを確認するにはどうすればよいですか(Python)?

1から1000までの各数値が3の倍数であるか5の倍数であるかをテストする必要があります。 3の倍数である。5と同じ。

数値が整数かどうかをテストするにはどうすればよいですか?

ここに私の現在のコードがあります:

n = 0
s = 0

while (n < 1001):
    x = n/3
    if isinstance(x, (int, long)):
        print 'Multiple of 3!'
        s = s + n
    if False:
        y = n/5
        if isinstance(y, (int, long)):
            s = s + n

    print 'Number: '
    print n
    print 'Sum:'
    print s
    n = n + 1
83
Taimur

これを行うには、モジュラス演算子%を使用します

n % k == 0

nkの正確な倍数である場合にのみtrueと評価されます。初等数学では、これは除算の剰余として知られています。

現在のアプローチでは、除算を実行すると、結果は次のいずれかになります。

  • 整数除算を使用する場合は常に整数、または
  • 浮動小数点除算を使用する場合は、常にフロートです。

可分性をテストするのは間違った方法です。

181
David Heffernan

単純に% Modulus演算子を使用して、可分性を確認できます。
たとえば:n % 2 == 0は、nが正確に2で割り切れることを意味し、n % 2 != 0は、nが正確に2で割り切れないことを意味します。

2
Pankaj Prakash

私も同じアプローチをしました。 module(%)演算子の使用方法がわからなかったからです。

6%3 = 0 *これは、6を3で割ると余りがないことを意味し、3は6の係数です

今、あなたはそれをあなたの与えられた問題に関連づけなければなりません。

if n%3 == 0 *これは、私のnumber(n)が3で割り切れる場合、0の余りを残しているということです

Then(print、return)ステートメントを追加して続行します

0
brandon gossman

%operatorを使用して、指定された数値の可分性を確認できます

与えられたかどうかを確認するコード。 または5で割り切れます。以下は1000未満です。

n=0
while n<1000:
    if n%3==0 or n%5==0:
        print n,'is multiple of 3 or 5'
    n=n+1
0
Lordferrous

このコードは、あなたが求めていることをしているようです。

for value in range(1,1000):
    if value % 3 == 0 or value % 5 == 0:
        print(value)

または何かのような

for value in range(1,1000):
    if value % 3 == 0 or value % 5 == 0:
        some_list.append(value)

または何でも。

0
Bennett Jester