c语言输出1到100的素数
1. 主题
梅森数,又被称为麦森数,是指形如 2p - 1 的正整数,其中指数 p 必须是素数。这种数通常被记作 Mp。若此数为素数,则称为梅森素数。
以 22 - 1 = 3 和 23 - 1 = 7 为例,这两个数都是梅森素数。对于 211 - 1 = 2047,尽管可以分解为 23×89,说明 2047 并非素数,因此它只是梅森数而非梅森素数。
现在,我们要编写一个程序,用于找出指数在 10 以内的所有梅森素数。
2. 设计分析
我们将采用穷举法。从素数中挑选出指数,然后以 2 为底,当前选定的素数为指数,计算其幂再减 1,最后判断得到的结果是否为素数。若是素数,则为梅森素数;若不是,则不是。
3. 功能或功能块创建
创建一个功能块 FB,命名为“MersennePrimes”功能块。
4. 接口变量定义
我们预先定义了一个可容纳 10 个元素的二维数组来保存结果。为了提高代码的可读性和复用性,大部分变量被定义为静态变量。
程序代码(此处仅展示核心逻辑部分):
对于每一个在 10 以内的素数 p,计算 2p - 1 的值。然后使用先前编写的素数判断子程序来检查该值是否为素数。若是,则将此值及其对应的 p 值保存至之前定义的二维数组中。
例如:
当 p = 2 时, 22 - 1 = 3 (素数), 当 p = 3 时, 23 - 1 = 7 (素数), ...等等。
5. 代码测试
经过测试,我们找到了指数在 10 以内时的梅森素数:M2=3, M3=7, M5=31, M7=127, 一共四个。
6. 总结
通过此项目,我们学习了:
- FOR循环语句的使用;
- IF...ELSE语句的用法;
- 子程序的调用与参数传递;
- 二维数组的使用技巧;
- CONTINUE语句的作用。
(来源: PLC论坛 - 专业可编程控制器技术交流平台)