/** 题目:Help Tomisu UVA - 11440 链接:https://vjudge.net/problem/UVA-11440 题意:给定正整数N和M, 统计2和N!之间有多少个整数x满足,x的所有素因子都大于M (2<=N<=1e7, 1<=M<=N, N-M<=1E5) 输出答案除以1e8+7的余数. 思路: lrjP338 由于x的所有素因子都>M:那么x与M!互质. 根据最大公约数的性质,对于x>y,x与y互质,那么x%y与y也互质. 由于N…
题意 求Σ{1<=i<N} Σ{i<j<=N} GCD(i, j)     (N<=4000000) 分析 原始思路 暴力求明显是不行的,我们把式子简化形式一下发现它可以写成Σ{2<=j<=N} GCD(1~j-1, j) 这个形式就给我们一种思路:可以只枚举j,然后快速算出GCD(1~j-1, j) 我们当然不能枚举1~j-1那么算,那么再换种思路,枚举可能的答案k,即j的所有约数.分别计算GCD(1~j-1, j) = k的方案数(HDU 1695),然后加起…
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2435 题意: 给定正整数N和M,统计2和N!之间有多少个整数x满足:x的所有素因子都大于M(2≤N≤1e7,1≤M≤N,N-M≤1e5).输出答案除以100000007的余数.例如,N=100,M=10时答案为43274465. 分析: 因为M≤N,所以N!是M!的整数倍.“所有素…
题意:给一个 n,m,统计 2 和 n!之间有多少个整数x,使得x的所有素因子都大于M. 析:首先我们能知道的是 所有素数因子都大于 m 造价于 和m!互质,然后能得到 gcd(k mod m!, m!) = 1,也就是只要能求出不超过 m!且和 m! 互质的个数就好,也就是欧拉函数呗,但是,,,m!也非常大,根本无法用筛选法进行,但是可以通过递推进行,根据欧拉公式,能知道n! 和 (n-1)! 如果n为中素数,那么它们的素因子肯定是一样的,如果n是素数,那么就会多一项,所以我们能够得到递推式.…
2^x mod n = 1 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 15810    Accepted Submission(s): 4914 Problem Description Give a number n, find the minimum x(x>0) that satisfies 2^x mod n = 1.   I…
约数 一.概念 约数,又称因数.整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a.a称为b的倍数,b称为a的约数. 二.性质 1.整数唯一分解 1)定义 对于任意一个正整数N,都有 N=p1c1*p2c2...pmcm,其中p为质数. 2)正约数集合 ={p1b1*p2b2*...pmbm|0<=bi<=ci}   3)正约数的和 f(n)=(p1^0+p1^1+p1^2+…p1^a1)(p2^0+p2^1+p2^2+…p2^a2)…(pk^0+pk…
找新朋友 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9361    Accepted Submission(s): 4955 Problem Description 新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数…
GCD Again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2611    Accepted Submission(s): 1090 Problem Description Do you have spent some time to think and try to solve those unsolved problem a…
欧拉函数: φ(n)=n*(1-1/p1)(1-1/p2)....(1-1/pk),其中p1.p2-pk为n的所有素因子.比如:φ(12)=12*(1-1/2)(1-1/3)=4.可以用类似求素数的筛法.(素数打表)先筛出n以内的所有素数,再以素数筛每个数的φ值.比如求10以内所有数的φ值:设一数组phi[11],赋初值phi[1]=1,phi[2]=2...phi[10]=10:然后从2开始循环,把2的倍数的φ值*(1-1/2),则phi[2]=2*1/2=1,phi[4]=4*1/2=2,p…
欧拉函数: 对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目. POJ 2407.Relatives-欧拉函数 代码O(sqrt(n)): ll euler(ll n){ ll ans=n; ;i*i<=n;i++){ //这里i*i只是为了减少运算次数,直接i<=n也没错, ){ //因为只有素因子才会加入公式运算.仔细想一下可以明白i*i的用意. ans=ans/i*(i-); ) n/=i; //去掉倍数 } } ) ans=ans/n*(n-); return ans; }…