数论
不徐不急
命,弱者的借口;运,强者的谦词。
展开
-
数论--最小公倍数
记录求两个数的最小公倍数:lcm=a*b/gcd(a,b);求一组数据的最小公倍数:ll lcm(int n){ int num; for(int i=0; i<n-1; i++) { num=__gcd(s[i],s[i+1]); s[i+1]=s[i]/num*s[i+1]; } return s[n...原创 2019-07-22 10:18:57 · 410 阅读 · 0 评论 -
基姆拉尔森计算公式
int Date(int y,int m,int d){ if(m==1||m==2) { m+=12; y--; } int week = (d + 2*m +3*(m+1)/5 + y + y/4 - y/100 + y/400)%7+1; return week;}1-7代表周一至周日。hdu 6112:挺简单的。不过wa了一发。因为最开始忘记了2月29日...原创 2019-08-13 15:57:41 · 2847 阅读 · 0 评论 -
数论——求N!末尾的零
举个例子,比如10!10!=1*2*3*4*5*6*7*8*9*10;会产生两个零。为什么呢?数末尾的零,可以看成2*5,比如130=13*10=13*2*5;而10!中,只有5,和10会各自产生一个5,而且因为偶数就会产生2,比如2 4 6 8 10所以,求N!末尾的零就是求1-N会产生多少个5很容易想到N/5,但是要注意25,125这些连续5相乘产生的数,所以正确的...原创 2019-09-09 13:12:12 · 392 阅读 · 0 评论 -
计蒜客——忽明忽暗
首先,这是一道模拟题,但数据范围很大,1e18.所以,我们先暴力求解+打表,发现一下规律:#include<iostream>#include<cstring>#include<string>#include<cmath> #define ll long longusing namespace std;const i...原创 2019-09-09 18:51:43 · 245 阅读 · 1 评论