首页 > 其他分享 >[数论] 判断一个多位数是不是x的倍数

[数论] 判断一个多位数是不是x的倍数

时间:2024-04-08 19:24:48浏览次数:11  
标签:判断 10000 数论 是不是 倍数 多位数


 (n最多10000位) 3<=x<=9;

判断3:
判断一个数是否是3的倍数,原理是将这个数的各个位上的数加起来,其和是3的倍数的话,那这个数便是3的倍数。

判断4:
判断一个数是否是4的倍数的方法:看这个数的末两位上的数是否是4的倍数。因为满百位的肯定是4的整数倍,100可以整除4

判断5:
判断一个数是否是5的倍数的方法:看这个数的末位上的数是否是0或者5。

判断6:
判断一个数是否是6的倍数的方法:个位上要是偶数0、2、4、6、8的数且各个数位上的数字相加之和是3的倍数。

判断7:
三位三位地进行分节,对应奇数节的三位数的和 与 对应偶数节的三位数的和 的差可以被7整除,那么就可以被7整除。
例:12,712,717,003=7*1,716,100,429,((12+717)-(712+3)=14=7*2)

判断8:
判断一个数是否是8的倍数的方法:末尾三位上的数字是否是8的倍数。因为1000是8的整数倍,只需看后三位即可。


判断9:
判断一个数是否是9的倍数的方法:各个数位上的数字相加之和是9的倍数。各个数位上数字遇9就划掉,最后剩余的数就是除以9的余数!

这里以n是个四位数,x=9为例进行证明:
n=1000*a + 100*b + 10*c +d;
即:
n =(999*a+99*b+9*c)+a+b+c+d
由于(999*a+99*b+9*c)的每个系数都是9的倍数,所以(999*a+99*b+9*c)是9的倍数,那么我们只需要判断a+b+c+d是否是9的倍数就可以判断n是否是9的倍数,即n的各个位之和是9的倍数,n就是9的倍数。


标签:判断,10000,数论,是不是,倍数,多位数
From: https://www.cnblogs.com/Yzc-wm/p/18122353

相关文章

  • 【学习笔记】数论分块
    先看一个例子:给出正整数\(n(n\leq10^{12})\),计算:\[\sum_{i=1}^n\lfloor\frac{n}{i}\rfloor\]如果直接暴力,复杂度为\(O(n)\),无法在1s内通过,但使用数论分块(整除分块)可以将复杂度降至\(O(\sqrt{n})\)。先看个例子,当\(n=100\)时,\(i\)和\(\lfloor\frac{n}{i}\r......
  • 数论
    前言本篇文章主要是给未来的自己看的。由于证明不想直接给导致丧失思考能力,所以没写。还没写完qwq~。知识点余数与质数:质数筛法,欧拉函数,欧几里得(ex),斐蜀定理,BSGS,同余的性质,逆元。组合与矩阵:矩阵乘法,矩阵加速,高斯消元,组合数学,容斥原理............详解质数筛法埃筛:找到质数......
  • 【算法】数论
    题目链接前言疑似是有点不会数学了,照着题解推式子都推了小半个下午,还看不出来减法公式,唉。题解考虑把这些\(f(a,b)\)异或起来再模一个数不会有很好的性质,所以要把每一个\(f(a,b)\)都算出来。由加法公式得\[f(a,b)=\sum\\tbinom{b}{i}\tbinom{n-i}{a}\]\[=\sum\tbin......
  • 如何进行快速求解大数是否是11的倍数证明(如果奇数位数字和与偶数位数字和的差是11的倍
    当一个数的奇数位上数字和与偶数位上数字和的差是11的倍数时,这个数就是11的倍数。这个性质可以通过数学归纳法和模运算的性质来证明。观察模运算的性质首先,观察到对于任意正整数k,10^k对11取模的结果是循环的:......
  • C语言经典例题(17) --- 最小公倍数、单词倒置、你是天才吗?、完美成绩、判断整数的奇偶
    1.最小公倍数正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数,设计一个算法,求输入A和B的最小公倍数。输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。输入:57输出:35#include<stdio.h>intmain(){inta=0;intb=0;int......
  • C语⾔编程题 计算最⼤公约数 和 打印最⼩公倍数
    1.计算最⼤公约数1.1 题⽬描述:      输⼊2个整数m和n,计算m和n的最⼤公约数,并打印出结果2.2解法思路:       最⼤公约数是指两个或多个整数共有约数中最⼤的⼀个。为了求出两个数的最⼤公约数,可以采⽤: •枚举试除法: 1.具体来说,公约数⼀定⼩于两个......
  • 数论的各种板子2.0 (约数和 和 约数个数和)
    ​#include<bits/stdc++.h>//求约数和#include<map>usingnamespacestd;constintmod=1e9+10;typedeflonglongll;intmain(){ intn; cin>>n; unordered_map<int,int>primes; while(n--){ intx; cin>>x; for(inti=2......
  • 数论的各种板子1.0
    仅为了记录所学的知识.boolis_prime(intx){//求是否为素数 if(x<2)returnfalse; for(inti=2;i<=x/i;++i){ if(x%i==0)returnfalse; } returntrue;}voiddivide(intx){//分解质因子 for(inti=2;i<=x/i;++i){ ints=0; while(x%i==0)x/=i,s++; cou......
  • 数论分块学习笔记
    数论分块学习笔记性质数论分块用于快速计算含有除法向下取整的和式,即形如\(\sum_{i=1}^nf(i)g(\lfloor\frac{n}{i}\rfloor)\)的式子。当预处理出\(f\)的前缀和时,数论分块可以在\(O(\sqrt{n})\)的时间复杂度下计算上述和式的值。求解引理\(1\):\(\foralla,b,c\in\math......
  • 数论:整除与素数
    整除与素数素数\(\pi(n)\)表示不小于\(n\)的正整数中素数的个数。素数个数估计:\(\pi(n)\sim\dfrac{n}{\lnn}\)。Meissel-LehmerMeissel-Lehmer在亚线性时间内求出\(\pi(n)\)。。。。线性筛素数核心:让每一个合数被其最小质因数筛到。for(inti=2;i<=n;++i)......