[python] 숫자가 다른 숫자 (Python)로 나눌 수 있는지 어떻게 확인합니까?

1부터 1000까지의 각 숫자가 3의 배수인지 5의 배수인지 테스트해야합니다. 내가 이렇게 생각한 방법은 숫자를 3으로 나누는 것이고 결과가 정수이면 결과가 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



답변

모듈러스 연산자를 사용하여이 작업을 수행합니다. %

n % k == 0

n의 정확한 배수 인 경우에만 참으로 평가됩니다 k. 초등 수학에서 이것은 나눗셈의 나머지로 알려져 있습니다.

현재 접근 방식에서는 분할을 수행하고 결과는

  • 정수 나눗셈을 사용하는 경우 항상 정수 또는
  • 부동 소수점 나누기를 사용하는 경우 항상 부동 소수점입니다.

분할 가능성을 테스트하는 것은 잘못된 방법입니다.


답변

%Modulus 연산자를 사용 하여 분할 가능성을 확인할 수 있습니다 .
예를 들어 : n % 2 == 0n은 정확히 2로 나눌 수 있고 n은 정확히 2로 나눌 수 n % 2 != 0없음을 의미합니다.


답변

나도 같은 접근 방식을 사용했습니다. module (%) 연산자를 사용하는 방법을 이해하지 못했기 때문입니다.

6 % 3 = 0 * 이는 6을 3으로 나누면 나머지가없고 3은 6의 인수임을 의미합니다.

이제 그것을 주어진 문제와 연관시켜야합니다.

if n % 3 == 0 * 이것은 내 숫자 (n)를 3으로 나눌 수있는 경우 0 나머지를 남기는 것입니다.

then (print, return) 문을 추가하고


답변

% 연산자 를 사용 하여 주어진 숫자의 다양성을 확인할 수 있습니다.

아니오가 주어 졌는지 확인하는 코드입니다. 아니오 3 또는 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


답변

이 코드는 요청한 작업을 수행하는 것으로 보입니다.

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)

또는 여러 가지.


답변

a = 1400
a1 = 5
a2 = 3

b= str(a/a1)
b1 = str(a/a2)
c =b[(len(b)-2):len(b)]
c1 =b[(len(b1)-2):len(b1)]
if c == ".0":
    print("yeah for 5!")
if c1 == ".0":
    print("yeah for 3!")


답변

적은 수의 n%3 == 0경우 괜찮습니다. 매우 큰 숫자의 경우 먼저 교차 합계를 계산 한 다음 교차 합계가 3의 배수인지 확인합니다.

def is_divisible_by_3(number):
    if sum(map(int, str(number))) % 3 != 0:
        my_bool = False
    return my_bool