随笔分类 -  数论

摘要:快速乘 解决int64*int64%int64问题 移位快速乘,思想是把a*b%p中的b,对其进行二进制拆分,把b拆成二进制形式 a*b=ck-1*a*2k-1+ck-2*a*2k-2+ck-3*a*2k-3+....+c0*a*20 其中c代码二进制位是否为1,我们只需要把b每次&1看最后一位是否 阅读全文
posted @ 2019-12-17 15:36 bluefly-hrbust 阅读(382) 评论(0) 推荐(0)
摘要:这道题就是一道简单的欧拉函数模板题,需要注意的是,当(1,1)时只有一个,其他的都有一对。应该对欧拉函数做预处理,显然不会超时。 阅读全文
posted @ 2018-10-23 21:05 bluefly-hrbust 阅读(170) 评论(0) 推荐(0)
摘要:对于求某个数的欧拉函数,我们可以通过公式直接求解,这里做出简单证明 代码实现 阅读全文
posted @ 2018-10-23 21:00 bluefly-hrbust 阅读(201) 评论(0) 推荐(0)
摘要:求满足GCD(a,b) = a XOR b; 其中1<=b <=a<=n。 首先做这道题需要知道几个定理: 异或:a XOR b = c 那么 a XOR c = b; 那么我们令GCD(a,b)= c; 这样 a 是 c 倍数。我们可以通过遍历c , 然后通过筛法,把c的倍数晒出当作a。求b如何求 阅读全文
posted @ 2018-10-20 23:22 bluefly-hrbust 阅读(154) 评论(0) 推荐(0)
摘要:没用运用好式子。。。想想其实很简单,首先应该分析,由于每次加一个LCM是大于等于其中任何一个数的,那么我LCM加在哪个数上面,那个数就是会变成大的,这样想,我们就知道,每个(x,y)对应就一种情况。 第二个突破口是,那个式子,我们可以想一想,是不是可以把数进行拆分,我们发现 a=x*k,b=y*k; 阅读全文
posted @ 2018-10-20 22:37 bluefly-hrbust 阅读(124) 评论(0) 推荐(0)
摘要:#include #include #include #include #include #define ll long long using namespace std; int main(){ int n; int k=0; while(1){ k++; scanf("%d",&n); if (n==0)break; int m=sqrt(n+... 阅读全文
posted @ 2018-10-19 23:53 bluefly-hrbust 阅读(177) 评论(0) 推荐(0)
摘要:#include #include #include #include #include #define rep(i,j,k) for(int i=j;i<=k;i++) using namespace std; const int N = 10007; bool is_prime[N]; int prime[N]; int cnt=0; void get_prime(){ int m=s... 阅读全文
posted @ 2018-10-19 22:58 bluefly-hrbust 阅读(170) 评论(0) 推荐(0)
摘要:#include #include #include #include #define ll long long #define rep(i,j,k) for(int i=j;i<=k;++i) using namespace std; const int maxx = 1e4+7; ll a[maxx]; void ex_gcd(ll a,ll b,ll &d,ll &x,ll &y) { ... 阅读全文
posted @ 2018-10-19 21:12 bluefly-hrbust 阅读(145) 评论(0) 推荐(0)
摘要:#include #include #include #include #define ll long long using namespace std; ll gcd(ll a,ll b){ return a%b==0?b:gcd(b,a%b); } int main(){ ll a,b; ll ans1,ans2; while(~scanf("%lld%lld",&a,&b)... 阅读全文
posted @ 2018-10-19 00:14 bluefly-hrbust 阅读(407) 评论(0) 推荐(0)
摘要:亏我前几天还学数论呢。。。没有深入研究费马小定理这个东西。。。做事情一定要静下心来啊。。。 题目要求满足(m+n)^p=m^p+n^p,要你定义一个封闭的新的加法和乘法运算 我们知道费马小定理中有两种表示法 费马小定理:若p是素数且a是整数则a^p≡a(mod p),特别的若a不能被p整除,则a^( 阅读全文
posted @ 2018-08-26 11:08 bluefly-hrbust 阅读(181) 评论(0) 推荐(0)
摘要:题目链接https://www.nowcoder.com/acm/contest/158/A 无语。。。这题很迷啊,原谅我的菜,刚开始想用预处理欧拉筛和前缀和,可是这题太血崩了,这样一样要遍历,1-e9的范围,后来翻网上题解,发现其实是个还算经典的问题 这题可以用离散和做嘛,如何离散和???先别着急 阅读全文
posted @ 2018-08-24 23:34 bluefly-hrbust 阅读(206) 评论(0) 推荐(0)