数论学习之素数

数论学习之素数

1.相关定义:

整除: 设a, b是两个整数,且b != 0 如果存在整数c ,使 a = bc, 则称a被b整除, 或b 整除a , 记作

b|a;

带余除法:

 a = qb + r;

这个式子称为带余除法 记余数 r = a mod b;

2.整除性质

1. 如果a |b 且 a | c,则对任意正整数x, y ,有a | bx + c y;

2.如果 a| b 且 b|c, 则a | c;

3.设m != 0,则a | b,当且仅当 ma | mb;

4.如果 a | b且b | a,则a = +_b;

5.如果a| b,且 b!= 0,则 |a| <= |b|;

3.素数定义:

如果正整数a 大于1且只能被1和它自己整除,则称a 是素数,如果a > 1且不是素数,

则称a 是合数。素数也称为质数。

4 素数与合数的性质:

1)如果d > 1,p是素数,且d | p, 则d  = p;

2) 设p 是素数,且 p | ab, 则有 p | a 或 p | b;

3)合数必有素数因子,即设一个合数a, 则存在素数p,使得p | a;

5 . 算术基本定理

 设 a > 1,则 a = p1^r1 * p2 ^ r2 * p3 ^ r3 * p4 ^r4 *......;

其中p1,p2,p3,..pn是不相同的素数,r1,r1,是正整数。。

定理中的表达式可称做a的素因子分解:

如24 = 2 * 2 * * 2 * 3;

推论:

d = p1 ^s1 * p2 ^s2 * p3 * s3 ^ p4 * s4....

0 <= si <= ri;i = 1 , 2, ,,k..

这个是正整数d为a的因子的充分必要条件。

所有因子的个数:

公式:

N = (1 + r1 ) * ( 1+ r2 ) * ( 1 + r3 ) *  ( 1 + r4 ) * ...*(1 + rn);

如99099 = 3 ^2 * 7 * 11 ^ 2 * 13

N = 3 * 2 * 3 * 2 = 36;

6 .求素数方法

1.素数筛选法。

举个简单的例子,如果求100以内的素数,把10 内的素数的倍数去掉即可。。

2.用定义法去求,效率非常低

素数筛选法代码实现:

 1 int A[80000], dp[20000];
2
3 const int inf = 65535;
4
5 int prime( )
6 {
7 int i, j, k = 0;
8 A[1] = 1;
9 for( i = 2; i <= sqrt(inf); i++)
10 for ( j = 2 * i; j <= inf; j += i)
11 A[j] = 1;
12 for( i = 1; i <= inf; i++)
13 if(!A[i])
14 dp[k++] = i;
15 return k;
16 }

  

转载于:https://www.cnblogs.com/tangcong/archive/2011/07/20/2111317.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值