c++整除符号_数的整除特征大家经常在用,可都是怎么来的呢?

很多资料或题目讲到关于数的整除性质,但是性质怎么来的很少介绍,在此"简单举例"推导以助理解掌握,方法多样的只举其中之一,有些数字类似的情况也不重复,以免占用大家宝贵的时间。

一般地,若整数b除以非零整数a,商为整数,且余数为零, 我们就说b能被a整除(或说a能整除b),

记为:a|b("|"是整除符号),读作"a整除b"或"b能被a整除"

一、我们先看几个基本的性质

1、 若a|b,a|c,则a| (b±c)

  • 运用除法与分数的关系解释
e1e93f4eb5888d192c0e50e61acd93db.png
  • 通俗地讲,如果两个数能被同一个数整除,那么它们的和、差也能被这个数整除(积当然也可以)

2、 若a|b,b|c,则a|c

5001bd9a4063d972b3b14485da9ab011.png
  • 通俗地讲就是一个数倍数的倍数是它的倍数。

3、 若a|bc,且(a,c)= 1,则a|b

e81e405e447968c7e696dab7d3821b93.png

4、 a|b,c|b,且a、c互质(a,c)=1,则bc|a

37a0e885881d00fff0c9e34c1699ea80.png

这个性质可以推广到多个两两互质的数的情况,非常有用;

例:2、3、5两两互质,如果一个数m能同时被这三个数整除,那么m能被30整除;


二、结合位值原理常见数的整除特征归纳说明

1、个位上是0、2、4、6、8的整数都能被2整除。

9894ce98df19a5724592d9162e37c90d.png

2、 个位上是0或者5的整数都能被5整除(方法同上)。

3、 若一个整数各位数字之和能被3(或9)整除,则这个整数能被3(或9)整除。(3与9判断方法一样)

871d7cd27cdb6537d5ecffde904bc87f.png

请注意:从这里我们也可以得出一个整数除以9的余数等于它各数字之和除以9的余数。

4、 若一个整数末两位数能被4(或25)整除,则这个数能被4(或25)整除。(方法同2,找整百);

5、若一个整数末三位数能被8(或125)整除,则这个数能被8(或125)整除。(方法同2,找整千);

6、 若一个整数末四位数能被16(或625)整除,则这个数能被16(或625)整除。(方法同2,找整万);

7、 一个三位以上的整数能否被7(或11、13)整除,从右往左三位断开,奇数段与偶数段分别相加再作差(以大减小)能否被7(或11、13)整除 ,(右往左-三位断-奇偶分组-求和-再作差);

8730cf13347d8996ee9d7fb5dfa2875e.png

8、 一个整数的奇数位数字和与偶数位数字和的差(大-小)如果是11的倍数,那么这个整数也是11的倍数(比上面方法简单一点点);

9cae755e7847f84207a58faa5d71a293.png

9、判断一个整数能否被99、999、9999....整除,可以“从右往左”按照两位、三位、四位断开再求和。

2f3be57a5e434237020f6885e899a869.png
  • 其实所有关于“9”的整除原理都一样

10、若一个质数能整除两个自然数的乘积,那么这个质数至少能整除这两个自然数中的一个;

11、 特别地:1与0的特性

1是任何整数的因数,即对于任何整数a,总有1|a.

0是任何非零整数的倍数,a≠0,a为整数,则a|0.


三、关键

数的整除概念、性质及特征为我们解决一些实际问题带来了很大方便,应用广泛。需要在理解其来源的基础上掌握。

我们可以用上面的性质去判断能否被给定的数整除,反过来也可以用相关的性质去解决问题,比如结合平方数我们以前提到过的"n²+2"一定不是5的倍数。


四、经典例题

[例1]已知七位数" 1287xy6" 是72的倍数,求出所有符合条件的七位数(江苏竞赛题)

[思路导航]

因为72=8*9(8、9互质)

所以只需满足七位数能同时被8、9整除即可

如果先从8入手是考虑三位情况较多,所以从9入手

6726072499efbffafca0460563f99e54.png

例2、已知a、b是正整(a>b)对于如下两个结论:①在a+b、ab、a-b这三个数中必有2的倍数,②a+b、ab、a-b必有三的倍数,其中正确的是( )

A 都正确 ,B 都不正确;

C只有①正确 , D 只有②正确;

[思路导航]因为数字不确定,但可以结合奇偶性及余数的情况进行"分类讨论"得出结果,注意利用倍数与因数的关系。

b79adb3ddeea20d8a0180dcbae9e08dc.png

[例3]如果把1-1997这1997个自然数依次写下来,我们可以得一个多位数12345678910111213…1994199519961997,试求这个多位数除以9的余数。

[思路导航]

根据前面推导能被9整除的数的特征我们知道:

"一个自然数除以9的余数,等于这个自然数各个数位上数字和除以9的余数"

所以求这个多位数除以9的余数问题,可以先转化为求1至1997这1997个自然数中所有数字之和是多少,然后就很好解决了

方法一:因为1至9这9个数字之和为45

所以10至19,20至29……90至99

这十个组的各位数位上的数字和分别为:

45+10,45+20……45+90。

所以:1至99这99个自然数各位数字之和为:

45+55+65+…+125+135=900

同理可得

1至999这999个自然数各位上数字之和为:

900+1000+…+1700+1800=13500

同理可得

1000至1999这1000个自然数各数位上的数字和为

13500+1000=14500

则1至1999这1999个自然数各数位的数字和为:

13500+14500=28000。

1998、1999这两个数各数位上的数字和为:27、28。

28000-27-28=27945,

9能整除27945

所以多位数除以9余0

方法二:

将1至1996这1996个自然数配成如下的998组:

(1,1996),(2,1995),……

每组两数之和为1997

998组所有数字之和等于:

(1+9+9+7)×998=25948

25948+1997=27945

所以多位数除以9余0

方法三:根据整特性

由任意连续9个自然数所组成的多位数,

一定能被9整除;

而从1至1997一共有1997个数;

从1开始按9个一组分;

1997÷9=221(组)……8(个);

1990、1991、1992、1993、1994、1995、1996、1997;

我们看这8个数所有数位上的数字和为:

19+20+21+22+23+24+25+26=180;

180能被9整除,所以多位数除以9余0。


(因为任意连续的9个自然数的各数位上的数字和除以9的余数,必定是0,1,2…,7,8这9个数,而这9个数的和为36,36能被9整除,所以任意依次写出的9个连续自然数组成的多位数一定能被9整除。)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是用C++写将一个用素展开的代码,并注释: ``` #include <iostream> #include <vector> using namespace std; // 判断一个是否为素 bool isPrime(int n) { if (n < 2) return false; for (int i = 2; i <= sqrt(n); i++) { if (n % i == 0) return false; } return true; } // 将一个用素展开 vector<int> primeFactors(int n) { vector<int> factors; for (int i = 2; i <= n; i++) { if (!isPrime(i)) continue; // 如果i不是素,跳过本次循环 while (n % i == 0) { // 如果n能被i整除 factors.push_back(i); // 将i加入factors n /= i; // n除以i } } return factors; } int main() { int n; cout << "请输入一个正整:" << endl; cin >> n; vector<int> factors = primeFactors(n); cout << n << "的素展开式为:"; for (int i = 0; i < factors.size(); i++) { cout << factors[i]; if (i < factors.size() - 1) cout << " * "; } cout << endl; return 0; } ``` 首先,我们定义了一个函`isPrime`,用来判断一个是否为素。它的实现是通过从2到该的平方根,逐个判断是否能被整除。 接着,我们定义了另一个函`primeFactors`,用来将一个用素展开。它的实现是从2到该,逐个判断是否为素,如果是素就尝试将该除以它,直到无法整除为止,然后继续下一个素。 最后,在`main`函,我们从用户输入一个正整,然后调用`primeFactors`函得到素展开式。然后我们输出这个和它的素展开式,间用`*`符号连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值