随笔分类 -  数论

摘要:打表或者画个图可以看出i 根号n时每个i的贡献值相差很小,可以利用公式优化(函数C) 但是注意不能一整段使用公式,否则复杂度还是会劣化到O(n)(显然对gongxian只能逐步递减) 网上看了不少代码,但是都没有对贡献值边界问题给定明确的判断 所以还是加多一个while循环确定贡献值的开端是前面的n 阅读全文
posted @ 2018-01-15 17:24 Caturra 阅读(301) 评论(0) 推荐(0)
摘要:深夜无事可干啊 C++ include using namespace std; const int maxn = 1e6+11; typedef long long ll; bitset isnprime; int prime[maxn]; int sai(int n){ isnprime[0]= 阅读全文
posted @ 2018-01-13 03:09 Caturra 阅读(145) 评论(0) 推荐(0)
摘要:这是对HDU1085的扩展,注意数组范围要4倍的n C++ include using namespace std; const int maxn = 2333; int G[2][maxn],n; int main(){ while(scanf("%d",&n)^ 1){ memset(G,0,s 阅读全文
posted @ 2018-01-12 19:12 Caturra 阅读(146) 评论(0) 推荐(0)
摘要:年轻人的第一道母函数入门题 C++ include using namespace std; const int maxn = 1000+2000+5000+1; define rep(i,j,k) for(int i = j; i a b c){ if(!a&&!b&&!c) break; mem 阅读全文
posted @ 2018-01-12 11:39 Caturra 阅读(125) 评论(0) 推荐(0)
摘要:f[n]:sigma(i,n),i using namespace std; const int maxn = 1e6+11; const int Limit = 1e6; typedef unsigned long long ll; ll phi[maxn]; void euler(int n){ 阅读全文
posted @ 2018-01-12 10:35 Caturra 阅读(123) 评论(0) 推荐(0)
摘要:```C++ include using namespace std; const int maxn = 1e6+11; const int N = 1e6; typedef long long ll; bitset isnprime; ll prime2[maxn 2]; int sai(){ i 阅读全文
posted @ 2018-01-12 09:24 Caturra 阅读(140) 评论(0) 推荐(0)
摘要:依然是神奇的欧拉函数 若GCD(n,i)=k 则GCD(n/k,i/k)=1, 令i/k=x,有GCD(n/k,x)=1, →k GCD(n/k,x)=1中x的个数 = GCD(n,i)=k的和 范围就是求n的所有因子k C++ include using namespace std; const 阅读全文
posted @ 2018-01-11 23:12 Caturra 阅读(208) 评论(0) 推荐(0)
摘要:简单欧拉函数递推 用埃式筛会吃亏 C++ include include include include using namespace std; const int maxn = 5e6+11; typedef unsigned long long ll; ll phi[maxn]; void e 阅读全文
posted @ 2018-01-10 17:27 Caturra 阅读(120) 评论(0) 推荐(0)
摘要:结论题:小于n的所有互质数之和为phi(n) n/2 阅读全文
posted @ 2018-01-10 16:33 Caturra 阅读(114) 评论(0) 推荐(0)
摘要:结论:如果p是n的约数,那么满足gcd(i,n)==p的i的个数是Φ(n/p) 阅读全文
posted @ 2018-01-10 15:58 Caturra 阅读(133) 评论(0) 推荐(0)
摘要:欧拉函数测试题 期末考试完了做下水题 更好的方法是phi[i]==i时就直接筛选,不改了 C++ include using namespace std; const int maxn = 4e4+11;; typedef unsigned long long ll; bool isnprime[m 阅读全文
posted @ 2018-01-10 00:32 Caturra 阅读(134) 评论(0) 推荐(0)
摘要:显然只需要能跑到第二个因子就赢了 需要特判非平凡因子 常数优化:不用求出所有因子,跑完第二个素数就行了 C++ include using namespace std; typedef long long ll; const int maxn = 233; ll n,cnt; ll prime[ma 阅读全文
posted @ 2017-12-09 11:28 Caturra 阅读(200) 评论(0) 推荐(0)