数论整理(一)//能被一些数整除 //

1.能被一些数整除 

(1)能被2整除的数,个位上的数都能被2整除
(2*)能被4整除的数,个位和十位所组成的两位数能被4整除
(3*)能被8整除的数,百位、十位和个位所组成的三位数能被8整除
(4)能被5整除的数,末尾是0或5
(5*)能被25整除的数,十位和个位所组成的两位数能被25整除
(6*)能被125整除的数,百位、十位和个位所组成的三位数能被125整除
(7)能被3整除的数,各个数位上的数字之和能被3整除
(8*)能被9整除的数,各个数位上的数字和能被 9 整除
(9)如果一个数既能被 2 整除又能被 3 整除,那么这个数能被 6 整除
(10)如果一个数既能被 2 整除又能被 5 整除,那么这个数能被 10 整除(即个位为0)
(11*)能被 11 整除的数,奇数位(从左往右数)上的数字和与偶数位上的数字和的差(大数减小数)能被 11 整除

2.素数的筛法(不是很大的数据)

Primes 中存放的都是素数,就是把素数的倍数都标记成素数。

#include<iostream>
#include<cstring>
using namespace std;
#define Max 1005 
int prime[Max];
void IsPrime(){
     memset(prime,1,sizeof(prime));
     prime[0]=0;
     prime[1]=0;
     for(int i=2;i*i<Max;i++){
     	if(!prime[i])
     	    continue;
     	for(int j=i*2;j<Max;j+=i)
            prime[j]=0;
	 }
} 
int main(){
	IsPrime();
	for(int i=1;i<=Max;i++) 
	    if(prime[i]!=0)
	       cout<<i<<endl;
} 

3.区间素数

给定N,M, N和M都很大,但是M-N却很小,让我们求出M-N中的素数,可以先用线性筛打表,然后输出N到M中的素数 

4.判定素数

肯定有那个O(sqrt N)的方法了

5.唯一定理

概念:任意一个大于0的正整数都能被表示成若干个素数的乘积且表示方法是唯一的

任意一个合数都可以写成如下形式:

扫描二维码关注公众号,回复: 4224283 查看本文章


a的因子数= (a1+1)×(a2+1)×....×(ar+1)

猜你喜欢

转载自blog.csdn.net/red_red_red/article/details/84442907