整除

本文介绍了整数除法的基本定义与性质,包括整除的概念及其几个关键性质的证明,例如传递性、线性组合等,并给出了带余除法的表述。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文无特殊说明,字母代表的都为整数

定义:

b整除a,即存在整数c,使得a=b*c,记作b|a。

性质

1.若b|c且c|a,则b|a

证明

c=b*k1,a=c*k2
a=(b*k1)*k2

2.若a|b且a|c,则a|(b±c)

证明

b=a*k1,c=a*k2
b±c=a*(k1±k2)

3.若a|b且a|c,则a|(bx+cy).

证明

b=a*k1,c=a*k2
bx+cy=a(k1*x + k2*y)

4.若b|a,则有a=0 或 |a| ≥ |b|

证明

a=b*k1
1.k1=0
a=0
2.k1>=1
a>=b

5.x^n−y^n=(x−y)(x^(n−1)+x^(n−2) y+…+xy^(n−2)+y^(n−1))

证明

乘起来

6.x^n+y^n=(x+y)(x^(n−1)−x^(n−2) y+…−xy^(n−2)+y^(n−1))

证明

乘起来

带余除法

a/b=c……d,则a=bc+d且c,d唯一(0<=d

### 编程实现整除功能或整除算法代码 在编程中,整除通常涉及取模运算和判断一个数是否能被另一个数整除。以下是一些常见的整除实现方法及其代码示例。 #### 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、付费专栏及课程。

余额充值