不能被整除的数
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
给你一个数N 再给你3个数a,b,c求1到N内即不能被a,b整除,也不能被c整除的数
-
输入
-
有多组测试数据
每次输一个数N 接下来输入3个数a,b,c
输出1~N不能被a,b,c整除的数字的个数
0<=N<=2*10^9 a,b,c 都不大于N。N=0时不做处理并且结束
输出
-
输出1~N不能被a,b,c整除的数字的个数
每次输出占一行
样例输入
-
1000 5 6 8 20 3 4 5
样例输出
-
600 8
-
有多组测试数据
import java.util.Scanner;
public class Main {
public static long gcd(long a, long b) {
return b == 0 ? a : gcd(b, a % b);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
long number = scanner.nextLong();
while (number != 0) {
long a = scanner.nextLong();
long b = scanner.nextLong();
long c = scanner.nextLong();
long num1 = a * b / gcd(a, b);
long num2 = a * c / gcd(a, c);
long num3 = b * c / gcd(b, c);
long temp = num1 * c / gcd(num1, c);
long sum = number - (number / a + number / b + number / c - number / num1 - number / num2 - number / num3 + number / temp);
System.out.println(sum);
number = scanner.nextLong();
}
}
}