HDU - 4135Co-prime 容斥 分解质因子
2017-07-24 10:26
176 查看
Description
Given a number N, you are asked to count the number of integers between A and B inclusive which are relatively prime to N.Two integers are said to be co-prime or relatively prime if they have no common positive divisors other than 1 or, equivalently, if their greatest common divisor is 1. The number 1 is relatively prime to every integer.
Input
The first line on input contains T (0 < T <= 100) the number of test cases, each of the next T lines contains three integers A, B, N where (1 <= A <= B <= 10 15) and (1 <=N <= 10 9).Output
For each test case, print the number of integers between A and B inclusive which are relatively prime to N. Follow the output format below.Sample Input
21 10 2
3 15 5
Sample Output
Case #1: 5Case #2: 10
Hint
题意
问【a,b】区间内与n互质的数的数目题解:
容斥定理 + 分解质因子AC代码
#include <cstdio> #include <cmath> #include <vector> #include <cstring> #include <algorithm> typedef long long LL; using namespace std; vector<LL > yinzi; void fj(LL n){ yinzi.clear(); for (LL i = 2; i*i <= n; ++i){ if (n%i==0){ yinzi.push_back(i); while (n%i==0) n/=i; } } if (n>1) yinzi.push_back(n); return ; } LL ronc(LL a,LL b){ LL res = 0; for (LL i = a; i < yinzi.size(); ++i){ res += b/yinzi[i]-ronc(i+1,b/yinzi[i]); } return res; } int main(){ int t; scanf("%d",&t); int kase = 1; while (t--){ LL a,b; int n; scanf("%lld%lld%d",&a,&b,&n); fj(n); LL ans = 0; LL l = a-1 - ronc(0,a-1);/*注意不要把a漏了 不是a-1的话 如果a和n互质 那么答案就会少1*/ LL r = b - ronc(0,b); ans = r-l; /* LL l = a - ronc(0,a); LL r = b - ronc(0,b); ans = r-l; if (gcd(a,n)==1) ans+=1; //再加个gcd函数 此注释内可与上面的替换 道理都一样 */ printf("Case #%d: %lld\n",kase++,ans); } return 0; }
相关文章推荐
- 【HDU】4135 Co-prime(容斥原理简单应用 质因子的分解)
- hdu 2136 Largest prime factor (分解素数技巧)
- hdu 5778 abs(分解质因子,枚举平方数,数论)
- hdu-4344-Mark the Rope-大数分解质因子模板
- HDU 5428 The Factor(分解质因子)
- hdu 5505 GT and numbers(分解质因子)
- Uva 10780 Again Prime? No Time.(分解质因子)
- hdu 1695 综合数论 欧拉函数 分解质因子 容斥原理 打印素数表 帅呆了的一个题目 详解
- HDU 5428-The Factor(分解质因子)
- HDU 3641 Treasure Hunting (二分+分解质因子)
- hdu 2421 分解质因子
- hdu 5428(分解质因子)
- POJ_1365_Prime Land(分解质因子)
- 容斥原理:HDU-4135Co-prime
- HDU-6069 Counting Divisors - 2017 Multi-University Training Contest - Team 4(分解质因子区间筛法)
- hdu 5428 The Factor(分解质因子)
- HDU 3826 Squarefree number (分解质因子 + 巧思)
- UVA10780 - Again Prime? No Time.(分解质因子)
- hdu 5428 the factor(分解质因子)
- hdu 2138 How many prime numbers