如果一个整数能够被 66 或 88 整除,就称该整数为一个幸运数。
给定整数 n𝑛,请你计算 [1,n][1,𝑛] 范围内的幸运数的数量。
输入格式
一个整数 n𝑛。
输出格式
一个整数,表示 [1,n][1,𝑛] 范围内的幸运数的数量。
数据范围
前 33 个测试点满足 1≤n≤101≤𝑛≤10。
所有测试点满足 1≤n≤1001≤𝑛≤100。
import java.util.Scanner;
public class Main {
/**
* 常规解法--暴力
* @param args
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int sum = 0;
//从1开始,确定遍历顺序
for (int i = 1; i <= n; i++) {
if (i % 6 == 0 || i % 8 == 0) {
sum++;
}
}
System.out.println(sum);
}
/**
* 容斥原理 --> 解法
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int ans = n / 6 + n / 8 - n / 24;
// A并B = A + B - A 交 B
System.out.println(ans);
}
}