一、知识总结
1、数论:数论,是专门研究整数的纯数学的分支,而整数的基本元素是素数(也称素数),所以数论的本质是对素数性质的研究。
2、基本概念:
整数集合:Z={…,-2,-1,0,1,2…}
自然数集合:N={0,1,2…}
整除:若a=bk,其中a,b,k都是整数,则b是a的约数(因数),a是b的倍数。
.1整除任何数,任何数都整除0。
.若a|b,a|c,则a|(b+c),a|(b-c)。
.若a|b,则对任意整数c,则a|c。
.传递性:若a|b,b|c,则a|c。
因子:正整数a的平凡约数为1和a本身,a的非平凡约数称为a的因子。
3、整除性:
若a和b都为整数,a整除b是指b是a的倍数,a是b的约数(因数,因子),记为a|b。
整除的性质:
自反性: 对于任意n,有n|n。
传递性:若有a|b,b|c,则a|c。
可消性:若a|bc,且a和c互素,则a|b。
组合性:若c|a,且c|b,则对于任意整数m,n,有c|(ma+nb)。
4、素数
素数:a>1且只能被平凡约数整除的数。
合数:a>1且不是素数的数称为合数。
其他整数(0,1,负整数)既不是素数也不是合数。
素数有无穷多个,但分布比较稀疏,不大于n的素数约有n/ln(n)个。
5、筛法
[1,sqrt(n)]范围内的素数可以通过筛选法预先筛出来,用一个数组notprime[i]标记i是素数与否。最常用的筛选法—埃氏筛法(Eratosthenes筛选法)
#define maxn 1000000
bool isPrime[maxn+1];/* isPrime[i]true表示i为素数*/
void eratos(int n)
{ int i,j;
isPrime[0] = isPrime[1] = false;
for(i = 2;i <= n; ++i)
{ isPrime[i] = true;}
for(i = 2;i * i <= n; ++i)
{ if(isPrime[i])
{ for(j = i * i;j <= n;j += i)
{isPrime[j] = false;}
}
}
}
二、学习感想
数论既然是应用数学问题,一定会很难。开头的素数问题就已经难了,不过学会了就会有大大的收获。
数论对于素数的研究讨论是很精细的,这是训练思维的好方法。