整除



判断一个数是否能被另一个整数整除是一个挺简单的问题,一般一个模运算就可以搞定了,懒惰的晓萌还是不想自己做,于是找到你帮他写代码,你就帮帮他吧。

输入格式

输入包括两个由空格分开的整数 MM 和 N(1\leq M,N \leq 500)N(1M,N500)

输出格式

输出包括一行,如果 MM 可以被 NN 整除就输出YES,否则输出NO(结果大小写敏感)。

样例输入
21 7
样例输出

YES

a,b =(int(x) for x in raw_input().split(' '))
if a%b==0:
    print ('YES')
else:
    print ('NO')


### 编程实现整除功能或整除算法代码 在编程中,整除通常涉及取模运算和判断一个数是否能被另一个数整除。以下是一些常见的整除实现方法及其代码示例。 #### 1. 判断一个数是否能被另一个数整除 可以通过取模运算符 `%` 来判断一个数是否能被另一个数整除。如果 `a % b == 0`,则说明 `a` 能被 `b` 整除[^2]。 ```java public class DivisibilityCheck { public static void main(String[] args) { int a = 15; int b = 3; if (a % b == 0) { System.out.println(a + " 可以被 " + b + " 整除"); } else { System.out.println(a + " 不能被 " + b + " 整除"); } } } ``` #### 2. 计算范围内所有能被特定数整除的数之和 可以使用循环遍历指定范围内的所有数,并通过取模运算筛选出能被特定数整除的数,然后计算其总和[^2]。 ```java public class SumDivisibleBy3Or5 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("输入一个数n: "); int n = scanner.nextInt(); long sum = method(n); System.out.println("1 到 " + n + " 之间能够被 3 或者 5 整除的数之和是 " + sum); scanner.close(); } private static long method(int n) { long sum = 0; for (int i = 1; i <= n; i++) { if (i % 3 == 0 || i % 5 == 0) { sum += i; } } return sum; } } ``` #### 3. 找到最小的“光棍数”并判断是否能被整除 “光棍数”是指由若干个数字 `1` 组成的数(如 `1`, `11`, `111` 等)。可以通过不断构造更大的光棍数,直到找到能被给定数整除的最小光棍数[^3]。 ```c #include <stdio.h> int main() { long int singledog = 1, s; int x, cnt = 1; scanf("%d", &x); while (singledog % x != 0) { singledog = singledog * 10 + 1; cnt++; } s = singledog / x; printf("%ld %d\n", s, cnt); return 0; } ``` #### 4. RSA加密中的整除与模幂运算 在RSA加密算法中,整除和模幂运算是核心部分。为了防止数字过大导致溢出,可以在每次乘法后立即取模[^1]。 ```python def modpow(base, exponent, modulus): result = 1 base = base % modulus while exponent > 0: if (exponent % 2) == 1: result = (result * base) % modulus exponent = exponent >> 1 base = (base * base) % modulus return result def encode(m, e, n): return modpow(m, e, n) def decode(c, d, n): return modpow(c, d, n) ``` #### 5. 偏序关系中的整除判断 在离散数学中,偏序关系中的整除关系可以通过编程实现。例如,判断集合中是否存在某个数是另一个数的倍数[^4]。 ```python def is_divisible(a, b): return a % b == 0 def find_divisors_in_set(s): divisors = [] for i in range(len(s)): for j in range(len(s)): if i != j and is_divisible(s[i], s[j]): divisors.append((s[i], s[j])) return divisors # 示例集合 set_elements = [1, 2, 3, 4, 6] print(find_divisors_in_set(set_elements)) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值