求N以内与N互质的数的和】的更多相关文章

题目连接 /* 求所有小于N且与N不互质的数的和. 若:gcd(n,m)=1,那么gcd(n,n-m)=1; sum(n)=phi(n)*n/2; //sum(n)为小于n的所有与n互质的数的和 //phi(n)为小于n的所有与n互质的数的个数 */ #include<cmath> #include<cstdlib> #include<vector> #include<cstdio> #include<cstring> #include<i…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4135 题目大意: 求区间[a, b]中与N互质的数目. 解题思路: 首先对n求出所有素因子. 对于区间[1, m]中,只需要对n素因子求出所有子集,就可以求出所有的与n不互质的数目num,那么互质的数就是m-num: 对于区间[a, b],就等于[1, b]的数目 - [1,a - 1]的数目. #include<iostream> using namespace std; typedef lo…
//半年前做的,如今回顾一下,还是有所收货的,数的唯一分解,.简单题. #include<iostream> #include<cstring> using namespace std; int a[1000001];int p[1000000]; //用a来筛去m的唯一分解后的质因子及其倍数,流下就是与其互质的数. int main() { int m,k; while(cin>>m>>k) { memset(a,0,sizeof(a)); memset(…
首先看一个简单的东西. 若$gcd(i,n)=1$,则有$gcd(n-i,n)=1$ 于是在小于$n$且与$n$互质的数中,$i$与$n-i$总是成对存在,且相加等于$n$. 考虑$i=n-i$的特殊情况,此时$n=2*i$,由$gcd(i,n)=1$,得$n=2$.此时手动计算$ans=1$. 因为小于$n$且与$n$互质的数的个数为$φ(n)$,于是我们可以得出公式$ans=\frac{n*φ(n)}{2}$.…
[欧拉函数] 在数论,对正整数n,欧拉函数是少于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler’s totient function.φ函数.欧拉商数等. 例如φ(8)=4,因为1,3,5,7均和8互质. 从欧拉函数引伸出来在环论方面的事实和拉格朗日定理构成了欧拉定理的证明. [证明]: 设A, B, C是跟m, n, mn互质的数的集,据中国剩余定理,A*B和C可建立一一对应的关系.因此φ(n)的值使用算术基本定理便知, 若 n= ∏p^(α(下标p))p|…
pid=26358">https://uva.onlinejudge.org/index.phpoption=com_onlinejudge&Itemid=8&category=279&page=show_problem&problem=3937 题目:http://acm.bnu.edu.cn/v3/external/124/12493.pdf 大致题意:圆上有偶数n个点.每m个点连起来.最后能够把全部点串联起来就合法.问有多少个m能够完毕串联,串联后形状…
ll prime[100]; ll cnt; void getprime(){ cnt = 0; ll num = m; for(ll i = 2; i*i <= m; i++){ // sqrt(m) 的复杂度求出m的素因子 if (num%i == 0) { prime[cnt++] = i; while(num%i == 0){ num /= i; } } if (num == 1) break; } if (num > 1) prime[cnt++] = num; } void sol…
int eu(int n){ int ans=n; for(int i=2;i*i<=n;i++) { if(n%i==0) { ans=ans/i*(i-1); while(n%i==0)n/=i; } } if(n>1)ans=ans/n*(n-1);return ans;}…
long long phi(long long x) { long long res=x,a=x,i; ;i*i<=a;i++) { ) { res=res/i*(i-); ) a=a/i; } } ) res=res/a*(a-); return res; }…
算法是关键,得出1-m内的互质数,然后类推计算即可.下面有详细说明. #include<iostream> #include<cstring> using namespace std; int a[1000001];int p[1000000];   //用a来筛去m的唯一分解后的质因子及其倍数. int main() {     int m,k;     while(cin>>m>>k)     {         memset(a,0,sizeof(a)…