数论-------数的倍数

本文总结了2至17的倍数特征,包括2的倍数末位为偶数,3的倍数数位和为3的倍数,4的倍数末两位能被4整除等。同时提供了判断一个数是否为某个特定数倍数的方法。

曾在做牛客的小白赛遇到这样的问题,我来总结下:

牛客原题链接如下:https://ac.nowcoder.com/acm/contest/280/B,题目很简单,但是需要总结下,Accepted代码如下。

/*所有数位的和为3的倍数的数为3的倍数;
末位为5或0的数为5的倍数;末三位相加为8的倍数的数为8的倍数;
如果一个整数的奇数位上的数字之和与偶数位上的数字之和的差能
被11整除, 那么这个数可被11整除。*/
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 10000000007

int main()
{
	string s;
	cin>>s;
	int a[4];
	int flag = 0;
	int i,j,m,n=0;
	int ji=0,ou=0;
	j = s.length();
	for(i = 0;i < j;i++)
	{
		n += s[i]-'0';
		if(i&1) ji += s[i]-'0';
		else ou += s[i]-'0';
	}
	if(n%3==0) a[flag++] = 3;
	if((s[j-1]-'0')%5==0) a[flag++] = 5;
	if((s[j-1]-'0'+(s[j-2]-'0')*10+(s[j-3]-'0')*100)%8==0) a[flag++] = 8;
	if((ji-ou)%11==0) a[flag++] = 11;
	if(flag)
	{
		puts("Yes");
		for(i=0;i<flag;i++)
			cout<<a[i]<<' ';
	}
	else puts("No");
	return 0;
}

部分数的倍数参考dalao的博客:https://blog.youkuaiyun.com/chaiwenjun000/article/details/45934073

各种数的倍数的特征:

1就不要说了;

2的所有倍数的特征:大家都知道,只要最后数位上的数字是2的倍数就行;

3的所有倍数的特征:所有数位上的数字加起来和是3的倍数即可;

4的所有倍数的特征:

                              (1)十位数是奇数且个位数为不是四的倍数的偶数或十位数是偶数且个位数是四的倍数;

                              (2)若一个整数的末尾两位数能被4整除,则这个数能被4整除,即是4的倍数 ;

5的所有倍数的特征:最后数位上的数字是5或者0即可;

6的所有倍数的特征:数位上的数字之和可以被3整除的偶数;

7的所有倍数的特征:若一个整数的个位数字截去,再从余下的数中,减去个位数的2倍,如果差是7的倍数,则原数能被7整除。如果差太大或心算不易看出是否7的倍数,就需要继续上述「截尾、倍大、相减、验差」的过程,直到能清楚判断为止。例如,判断133是否7的倍数的过程如下:13-3×2=7,所以133是7的倍数;又例如判断6139是否7的倍数的过程如下:613-9×2=595 , 59-5×2=49,所以6139是7的倍数,余类推 。

8的所有倍数的特征:三位相加为8的倍数的数为8的倍数;

9的所有倍数的特征:其各位数字之和是9的倍数,如果继续将各位数字连加最后必然会等于9。

11的所有倍数的特征:如果一个整数的奇数位上的数字之和与偶数位上的数字之和的差能被11整除, 那么这个数可被11整除。

13的所有倍数的特征:

若一个整数的个位数字截去,再从余下的数中,加上个位数的4倍,如果和是13的倍数,则原数能被13整除。如果差太大或心算不易看出是否13的倍数,就需要继续上述「截尾、倍大、相加、验差」的过程,直到能清楚判断为止。

若一个整数的个位数字截去,再从余下的数中,加上个位数的4倍,如果差是13的倍数,则原数能被13整除。如果差太大或心算不易看出是否13的倍数,就需要继续上述「截尾、倍大、相加、验差」的过程,直到能清楚判断为止。

例如:判断383357能不能被13整除。

这个数的未三位数字是357,末三位以前的数字所组成的数是383,这两个数的差是:383-357=26,26能被13整除,因此,383357也一定能被13整除。

这个方法也同样适用于判断一个数能不能被7或11整除。

一个多位数的末三位数与末三位以前的数字所组成的数之差,如果能被13整除,那么,这个多位数就一定能被13整除。

17的所有倍数的特征:

若一个整数的个位数字截去,再从余下的数中,减去个位数的5倍,如果差是17的倍数,则原数能被17整除。如果差太大或心算不易看出是否17的倍数,就需要继续上述「截尾、倍大、相减、验差」的过程,直到能清楚判断为止。

23的所有的倍数的特征:

若一个整数的末四位与前面5倍的隔出数的差能被23(或29)整除,则这个数能被23整除

后面如果再遇到其他的倍数问题,再来补充之。。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值