1. 证明:对于任意质数$p\gt 3$,$p^2-1$能被$24$整除。

证:平方差公式,$p^2-1 = (p-1)(p+1)$。

再把$24$分解质因数$2^3*3$。

三个相邻的自然数中至少有一个数是$3$的倍数,而$p$是质数不可能有因子$3$,所以$p-1,p+1$中必有一个数有因子$3$。

$p$是质数,所以一定是奇数,那$p-1,p+1$就是偶数,而相邻两个偶数中至少有一个是$4$的倍数,所以两个数至少有一个有$1$个因子$2$,另一个有$2$个因子$2$。

所以$(p-1)(p+1)$是$2^3*3=24$的倍数,得证。

2. 把$gcd$卡成$log$级别的。

使用斐波那契数列,$gcd(fib(n),fib(n-1))=gcd(fib(n-1),fib(n)\mod fib(n-1))=gcd(fib(n-1),fib(n-2))$。

事实上有一个预处理$O(n)$,查询$O(1)$的求gcd做法,WZJ下次课讲。

3. 对于任意正整数$n$与质数$p\mod 4=3$,有$p$不整除$n^2+1$。

反证法,假设能整除。

$n^2\equiv -1 (\mod p)$

$(n^2)^\frac{p-1}{2} \equiv (-1)^\frac{p-1}{2} (\mod p)$

结合题意可知$\frac{p-1}{2}$是奇数。所以$n^{p-1}\equiv -1 (\mod p)$

而我们想到费马小定理的$n^{p-1}\equiv -1 (\mod p)$。

但为什么可以转化成费马小定理呢?$p$是质数,但$n,p$一定互质么?

首先$p$是质数,所以一定不是$n$的倍数;其次,如果$n$是$p$的倍数,$n^2+1$一定不是$p$的倍数,就直接证明原题不能整除了(原因:两个相邻的正整数互质)。

所以$n,p$互质,可以套用费马小定理。

结合两者可得$1\equiv -1 (\mod p)$。

$p$不能是2,所以不存在满足的情况。

综上,不能整除。

4. 原题hdu4497。

由题可知有$gcd(\frac{x}{G},\frac{y}{G},\frac{z}{G})=1$(这三个数两两互素),此时应该满足$lcm(x,y,z)=L/G$,要求$\frac{L}{G}$为整数,则若$L\mod G=0$,则一定有解($x,y,z$ 都等于 $\frac{L}{G}$即可),反之无解。
此时将$L/G$作正整数唯一分解,$\frac{L}{G}={a_1}^{b_1}*{a_2}^{b_2}*...*{a_n}^{b_n}$。
对于一个质因子$a$,要满足$gcd(\frac{x}{G},\frac{y}{G},\frac{z}{G})=1$,则至少有一个$k=0$使某个$a^k=1$。
同时还得满足$lcm(\frac{x}{G},\frac{y}{G},\frac{z}{G})=\frac{L}{G}$,则至少有一个$k=b$使某个$b^k=\frac{L}{G}$。
这样就有三种情况$(0,0,b)(b,b,0)(0,1...b-1,b)$,算上不同排列,共有$3+3+6(b-1)=6*b$种。其他的同理。
由分步乘法计数原理得最终答案为$(6*b_1)*(6*b_2)*........(6*b_n)$。

【2018.10.15】WZJ笔记(数论)的更多相关文章

  1. 2018.10.15 NOIP训练 hyc的等比数列(数论+枚举)

    传送门 一道不错的枚举题. 显然桶排序之后瞎枚举一波. 考虑枚举首项和末项,假设首项除去一个最大的平方因子得到的结果为xxx. 那么末项一定等于xxx乘上一个平方数. 于是我们枚举首项,算出xxx然后 ...

  2. 【2018.10.15】noip模拟赛Day1

    题面 wzj的题解 T1 随便搜 #include<bits/stdc++.h> #define ll long long using namespace std; inline int ...

  3. 梦想CAD控件 2018.10.15更新

    下载地址: http://www.mxdraw.com/ndetail_10105.html 1. 完善com接口的ToCurves函数,转换CAD文字,多行文字到曲线 2. 修改DrawImage接 ...

  4. 2018.10.15 bzoj3564: [SHOI2014]信号增幅仪(坐标处理+最小圆覆盖)

    传送门 省选考最小圆覆盖? 亦可赛艇(你们什么都没看见) 在大佬的引领下成功做了出来. 就是旋转坐标使椭圆的横轴跟xxx轴平行. 然后压缩横坐标使得其变成一个圆. 然后跑最小覆盖圆就可以了. 注意题目 ...

  5. 2018.10.15 bzoj4570: [Scoi2016]妖怪(凸包)

    传送门 不得不说这题有点东西啊. 看到题第一眼二分,用二次函数求范围来进行checkcheckcheck,20分滚粗了233. 于是开始思考正解. 发现可以把每只怪物的二元组属性看成二维坐标. 这时对 ...

  6. 2018.10.15 bzoj4445: [Scoi2015]小凸想跑步(半平面交)

    传送门 话说去年的省选计算几何难度跟前几年比起来根本不能做啊(虽然去年考的时候并没有学过计算几何) 这题就是推个式子然后上半平面交就做完了. 什么? 怎么推式子? 先把题目的概率转换成求出可行区域. ...

  7. 2018.10.15 loj#6010. 「网络流 24 题」数字梯形(费用流)

    传送门 费用流经典题. 按照题目要求建边. 为了方便我将所有格子拆点,三种情况下容量分别为111,infinfinf,infinfinf,费用都为validi,jval_{id_{i,j}}valid ...

  8. 2018.10.15 loj#6013. 「网络流 24 题」负载平衡(费用流)

    传送门 费用流sb题. 直接从sss向每个点连边,容量为现有物品量. 然后从ttt向每个点连边,容量为最后库存量. 由于两个点之间可以互相任意运送物品,因此相邻的直接连infinfinf的边就行了. ...

  9. 2018.10.15 NOIP训练 水流成河(换根dp)

    传送门 换根dp入门题. 貌似李煜东的书上讲过? 不记得了. 先推出以1为根时的答案. 然后考虑向儿子转移. 我们记f[p]f[p]f[p]表示原树中以ppp为根的子树的答案. g[p]g[p]g[p ...

随机推荐

  1. MS SQL生成数据库字典脚本

    开发一个项目时都会有一个蛋疼的问题——写数据库需求文档,然后根据这个文档来建数据库,如果后来需求改了,要改数据库还要改文档,有时忙着忙着就忘改了,导致文档是过期的.那么我们自己写个脚本在数据库运行直接 ...

  2. poj3264 划分树

    题意: 给定一个序列,询问区间中最大数减去最小数的结果 和2104差不多, 代码贴过来就OK了 #include <iostream> #include <algorithm> ...

  3. 利用enum4linux 445端口+wordpress插件任意文件上传的一次渗透

    探测内网80端口发现目标IP 目标使用Apache  2.4.7web服务中间件 使用linux    Ubuntu系统 使用御剑扫描了目录 目录扫描到了 http://192.168.31.236/ ...

  4. CPP-STL:STL备忘

    STL备忘(转) 1. string.empty() 不是用来清空字符串,而是判断string是否为空,清空使用string.clear(); 2. string.find等查找的结果要和string ...

  5. Java中的线程--Lock和Condition实现线程同步通信

    随着学习的深入,我接触了更多之前没有接触到的知识,对线程间的同步通信有了更多的认识,之前已经学习过synchronized 实现线程间同步通信,今天来学习更多的--Lock,GO!!! 一.初时Loc ...

  6. 使用JAVA抓取网页数据

    一.使用 HttpClient 抓取网页数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...

  7. javase(13)_网络编程

    一.概述 1.网络编程的核心是IP.端口(表示应用程序).协议三大元素 2.网络编程的本质是进程间通信 3.网络编程的2个主要问题:1是定位主机,2是数据传输 二.网络通信的概念 1.网络通信协议 计 ...

  8. vue 使用element-ui实现城市三级联动

    <template> <div> <el-select v-model="prov" style="width:167px;margin-r ...

  9. 欧拉函数φ(x)简要介绍及c++实现

    我还是很喜欢数论,从此吃喝不问,就此沉沦. 欧拉函数φ(x)的值为在[1,x)的区间内与x互质的数的个数 通式:    其中p1, p2……pn为x的所有质因数,x是不为0的整数.φ(1)=1. 注意 ...

  10. Lex与Yacc学习(六)之lex & yacc (简单计算器程序) 运行

    词法分析程序ch3-01.l %{ #include "ch3-01.tab.h" extern int yylval; %} %% [0-9]+ { yylval = atoi( ...