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的正整数都能被表示成若干个素数的乘积且表示方法是唯一的
任意一个合数都可以写成如下形式:
a的因子数= (a1+1)×(a2+1)×....×(ar+1)