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.
InputThe 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).OutputFor 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
2
1 10 2
3 15 5
Sample Output
Case #1: 5
Case #2: 10
Hint
In the first test case, the five integers in range [1,10] which are relatively prime to 2 are {1,3,5,7,9}.
题意 :给你 a b n 三个数 你要找出[a,b]范围内与n互质(即最大公约数为1)的个数 ,我们可以分别求[1,a-1]和[1,b]中互质个数然后我们要求就是 [1,b] - [1,a-1]
互质个数怎么求 ,互质个数相当于 总数减去不互质个数 ,显然n的质因子的所有倍数都是不互质的
比如 b=12,n=30
n的质因子为 2 ,3 5
[1,12]中 2的倍数有 2 ,4 ,6 , 8,10, 12 =n/2=6个
[1,12]中3的倍数有 3, 6 ,9, 12=n/3=4个
[1,12]中5的倍数有 5 ,10 =n/5=2个
不过显然其中有重复的我们应该去掉
用容斥定理 公式=n/2+n/3+n/5-n/(2*3)-n/(2*5)-n/(3*5)+n/(3*4*5)
怎么实现可以看代码
#include
#include
#include
#include
#include
#include
#include
#include
#include