随笔分类 -  数论

摘要:题目大致意思是输入一个T,然后接下来T行中输入n并计算每一行中n的阶乘的位数 解题思路:如果此题不是大数的话可以用对数函数性质:log10(1*2*3*4*5...)=log10(1)+log10(2)... 附上代码,注意sum是double 结果就TLE了。。。 正解是用斯特林公式: 附上代码: 阅读全文
posted @ 2018-05-03 22:21 Somnus、M 阅读(1093) 评论(0) 推荐(0)
摘要:cin>>n>>m;//输入被除数和除数 int len=n.length(); int ans=0; for(int i=0;i<len;i++) { ans=(int)(((long long)ans*10+n[i]-'0')%m); } cout<<ans; 阅读全文
posted @ 2018-05-01 16:09 Somnus、M 阅读(161) 评论(0) 推荐(0)
摘要:题目链接:https://vjudge.net/problem/UVA-11426 大致题意:让求一个数G,满足a,b<=n,a<b,G+=gcd(a,b) 大致思路:根据欧拉函数,a,b互质(a<b),因此gcd(a,b)=1,而gcd(2*a,2*b)=2,gcd(3*a,3*b)=3...gc 阅读全文
posted @ 2018-05-01 15:51 Somnus、M 阅读(130) 评论(0) 推荐(0)
摘要:Find the result of the following code: long long pairsFormLCM( int n ) { long long res = 0; for( int i = 1; i <= n; i++ ) for( int j = i; j <= n; j++  阅读全文
posted @ 2018-04-26 00:03 Somnus、M 阅读(150) 评论(0) 推荐(0)
摘要:大体思路:题意:给定一个n,让你求Σn/i,i从1->n. PS:这规律按照常规思维真的好难找 规律如下: 对于一个值 n / i 的个数有 n / i - n / ( i +1)个 但是这样暴力的话是O(n),2^32 暴力的话应该也会超,所以还得找找别的地方。于是发现当这个数(n / i)大于 阅读全文
posted @ 2018-04-24 09:20 Somnus、M 阅读(142) 评论(0) 推荐(0)
摘要:原理: 32+16+4=52 阅读全文
posted @ 2018-04-22 17:50 Somnus、M 阅读(2213) 评论(0) 推荐(0)
摘要:1 #include //该程序为哥德巴赫猜(想输出所有的组合) 2 #include 3 #include 4 #include 5 #include 6 7 using namespace std; 8 9 typedef unsigned long long ull; 10 typedef unsigned long long LL; 11 12 LL ... 阅读全文
posted @ 2018-04-22 17:41 Somnus、M 阅读(669) 评论(0) 推荐(0)
摘要:题目大致的意思是输出一个偶数总共有多少个素数对构成哥德巴赫猜想(PS:陷阱好多,稍一不慎就超内存了) 阅读全文
posted @ 2018-04-20 19:17 Somnus、M 阅读(311) 评论(0) 推荐(0)
摘要:题意:给你一个数n,让你求这个数的k次方的前三位和最后三位 大体思路:后三位直接用快速幂即可 求前三位则需要一些数学知识对于给定的一个数n,它可以写成10^a,其中这个a为浮点数,则n^k=(10^a)^k=10^a*k=(10^x)*(10^y);其中x,y分别是a*k的整数部分和小数部分,对于t 阅读全文
posted @ 2018-04-20 16:34 Somnus、M 阅读(187) 评论(0) 推荐(0)
摘要:剩余定理是中国古代求解一次同余式组(同余)的方法,设有一个数除三余二,除五余三.除七余二,问最小是多少 1.求出最小公倍数3*5*7=105 2.105÷5=21 21÷5=4......1 定理2把1扩大3倍得到3,那么被除数也扩大3倍,得到21*3=63//基础数63 3.105÷7=15 15 阅读全文
posted @ 2018-04-16 20:38 Somnus、M 阅读(295) 评论(0) 推荐(0)
摘要:题目大意: 给你两个整数C和N,再给你N个正数的序列,从中找到若干数,使得其和刚好是 C 的倍数。输出这些数的序号。 证明 阅读全文
posted @ 2018-04-14 18:20 Somnus、M 阅读(167) 评论(0) 推荐(0)
摘要:快速幂算法——可迅速求出a^b。其主要理论依据如下: 1,当b为偶数时,a^b可以转为a^2的b/2次方。 2,当b为奇数时,a^b可以转为a^2的b/2次方,再乘以a。 利用快速幂方法可以迅速求出一个数的任意次方。再结合a*b%m=(a%m)*(b%m)%m,就可得出下面计算代码: 阅读全文
posted @ 2018-04-14 15:34 Somnus、M 阅读(2885) 评论(0) 推荐(0)
摘要:求因子个数 求因子和 阅读全文
posted @ 2018-04-11 22:07 Somnus、M 阅读(978) 评论(0) 推荐(0)
摘要:① 乘性函数:如果对于任意的正整数n和m,且n和m互素,函数f()有f(n*m)=f(n)*f(m)。 ② 如果一个函数f是乘性函数,那么它的和函数F(n)=f(d1)+f(d2)+....+f(dk)也是乘性函数,其中 di | n (即n%di==0) ③ 如果n和m互素,gcd(i,n*m)= 阅读全文
posted @ 2018-04-11 21:23 Somnus、M 阅读(641) 评论(0) 推荐(0)
摘要:题目大意:给两个数a和b,找出一组x,y使得a*x + b*y = 1,如果找不出输出sorry 题解:显然是用扩展欧几里得定理求解。 又扩展欧几里得定理有,如果a*x+b*y = d 要使得方程有解必有gcd(a,b)为d的约数。 而此题的d = 1 所以若gcd(a,b)!=1,则应该输出sor 阅读全文
posted @ 2018-04-10 22:09 Somnus、M 阅读(147) 评论(0) 推荐(0)
摘要:证明过程:https://blog.csdn.net/lincifer/article/details/49391175 代码: 1)扩展欧几里得算法求ax+by=c时 2)求解模线性方程 ax = b(mod n) 同余方程 ax≡b (mod n)对于未知数 x 有解,当且仅当 gcd(a,n) 阅读全文
posted @ 2018-04-10 21:22 Somnus、M 阅读(162) 评论(0) 推荐(0)
摘要:Bi-shoe and Phi-shoe Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Submit Status Practice LightOJ 1370 Bi-shoe and Phi-shoe Submi 阅读全文
posted @ 2018-04-05 18:34 Somnus、M 阅读(216) 评论(0) 推荐(0)
摘要:欧拉函数详解 对一个正整数N,欧拉函数是小于N且与N互质的数的个数.。 例如φ(24)=8,因为1, 5, 7, 11, 13, 17, 19, 23均和 24 互质。 φ(n) = n*(1-1/p1)*(1-1/p2)*......(1-1/pn) 其中(p1.....pn)为N的素因子 欧拉函 阅读全文
posted @ 2018-04-05 16:31 Somnus、M 阅读(271) 评论(0) 推荐(0)