C语言计算2000以内同时被3和7整除的整数个数

阿麦
阿麦
发布时间:2026-10-15| 4人浏览过
原创

本文将演示如何使用 C 语言高效计算 2000 以内既能被 3 整除又能被 7 整除的整数数量,通过数学逻辑优化代码,避免使用低效的循环遍历。

问题分析与数学原理

要找出一个范围内同时满足两个整除条件的数字,本质上是寻找这两个数的最小公倍数(Least Common Multiple, LCM)。

  • 目标范围: 2000 以内(通常指小于等于 2000 的正整数)。
  • 条件: 能被 3 整除 且 能被 7 整除。

由于 3 和 7 互为质数,它们的最小公倍数为 $3 \times 7 = 21$。因此,问题转化为:计算 2000 以内有多少个 21 的倍数。

算法逻辑:集合论方法

虽然对于本题直接使用“除以最小公倍数”最为简单,但理解其背后的集合论逻辑有助于处理更复杂的“能被 A 或 B 整除”或排除特定组合的问题。假设我们需要统计 1000 以内的情况(原文示例数据),逻辑如下:

  1. 计算能被 3 整除的数量: $\lfloor 1000 / 3 \rfloor = 333$ 个。
  2. 计算能被 7 整除的数量: $\lfloor 1000 / 7 \rfloor = 142$ 个。
  3. 去重处理(容斥原理): 上述两步中,能被 21 整除的数字被重复计算了两次,需要减去一次重叠部分。数量为 $\lfloor 1000 / 21 \rfloor = 47$ 个。

若题目仅要求“既能被3又能被7”,则直接计算 $\lfloor N / (LCM(3,7)) \rfloor$ 即可。对于 2000 以内的范围:$2000 / 21 \approx 95.23$,即共有 95 个满足条件的整数。

C语言代码实现

以下是针对 2000 以内范围的简洁实现。为了提高通用性,代码中可以定义最大阈值和最小公倍数。

复制代码 代码如下:
#include <stdio.h>

int main(void) {
    int limit = 2000;
    int divisor_a = 3;
    int divisor_b = 7;
    
    // 计算最小公倍数: a * b / gcd(a, b),此处互质直接相乘
    int lcm = divisor_a * divisor_b; 
    
    // 计算结果:向下取整除法
    int count = limit / lcm;
    
    printf("在 %d 以内,既能被 %d 整除又能被 %d 整除的数的个数为: %d\n", 
           limit, divisor_a, divisor_b, count);
    
    return 0;
}

运行结果验证

根据上述代码逻辑:

  • $2000 \div 21 = 95$(余 5)。

程序将输出结果:95。

总结

在编程解决整除计数问题时,优先分析数字间的数学关系(如最小公倍数、最大公约数)往往比暴力遍历更高效。本文展示了如何结合 C 语言基础语法与基础数论知识,快速得到准确结果。以上就是C语言计算2000以内既能被3整除又能被7整除的整数个数的详细内容,更多关于C语言数学逻辑优化的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。