• 编程每日一练(多语言实现)基础篇:求100~200之间的素数


    一、实例描述

    求素数表中 100~200 之间的全部素数。运行结果如下图所示:
    在这里插入图片描述

    二、技术要点

    素数是大于1的整数,除了能被自身和1整除外,不能被其它正整数整除。本示例的算法是这样的:让 i2根号i 除,如果 i 能被 2根号i 之中任何一个整数整除,则结束循环,若不能被整除则要判断 j 是否是最接近或等于 根号i 的,如果是则证明是素数,否则继续下次循环。

    三、代码实现

    3.1 C 语言实现

    /*================================================================
    *   Copyright (C) 2023 AmoXiang All rights reserved.
    *   
    *   文件名称:05-求素数表中100~200之间的全部素数.c
    *   创 建 者:AmoXiang
    *   创建日期:2023年10月07日 11:09:43
    *   描    述:
    *
    ================================================================*/
    
    
    #include 
    #include 
    int main() {
      int num = 0;
      int i = 0, j = 0;
      for (i = 100; i < 201; ++i) {
        int j_max = (int) sqrt(i);
    //    printf("%d\n", j_max);
        for (j = 2; j < j_max + 1; ++j) {
          if (i % j == 0) {
            break;
          } else if (j == j_max) {
            num++;
            printf("%d,", i);
            if (num % 5 == 0) {
              printf("\n");
            }
          }
        }
      }
      printf("\n");
      return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    程序运行结果如下图所示:
    在这里插入图片描述

    3.2 Python 语言实现

    # -*- coding: utf-8 -*-
    # @Time    : 2023/10/7 10:23
    # @Author  : AmoXiang
    # @File    : 05-求素数表中100~200之间的全部素数.py
    # @Software: PyCharm
    # @Blog    : https://blog.csdn.net/xw1680
    import math
    
    num = 0
    
    # 第一种方案:暴力轮询 查看从2开始到数本身是否有能被数整除的数字 如果有说明不是素数
    for i in range(100, 201):
        for j in range(2, i):
            if i % j == 0:
                break
        else:
            num += 1
            print(i, end=',')
            if num % 5 == 0:
                print()
    print()
    print('==============================================>')
    # 第二种方案: 让i被2到根号i除,如果i能被2到根号i之中任何一个整数整除,则结束循环,
    # 若不能被整除则要判断j是否是最接近或等于根号i的,如果是则证明是素数,否则继续下次循环。
    num = 0  # 重新开始计数
    for i in range(100, 201):
        j_max = int(math.sqrt(i)) + 1  # 注意这里要加1
        for j in range(2, j_max):
            if i % j == 0:
                break
        else:
            num += 1
            print(i, end=',')
            if num % 5 == 0:
                print()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    程序运行结果如下图所示:
    在这里插入图片描述

    3.3 Java 语言实现

    /**
     * ClassName: Exercise5
     * Package: PACKAGE_NAME
     * Description: 求100~200之间的素数
     *
     * @Author AmoXiang
     * @Create 2023/10/7 10:49
     * @Version 1.0
     */
    
    public class Exercise5 {
        public static void main(String[] args) {
            int num = 0; //计数
            for (int i = 100; i < 201; i++) {
                int j_max = (int) Math.sqrt(i);
                for (int j = 2; j < j_max + 1; j++) {
                    if (i % j == 0) {
                        break; // 如果有一个数能被整除就跳出循环
                    } else if (j == j_max) {
                        num++;
                        System.out.print(i + ",");
                        if (num % 5 == 0) {
                            System.out.println();
                        }
                    }
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    程序运行结果如下图所示:
    在这里插入图片描述

    3.4 JavaScript 语言实现

    let num = 0;
    for (let i = 100; i < 201; i++) {
        let j_max = parseInt(Math.sqrt(i))
        for (let j = 2; j < j_max + 1; j++) {
            if (i % j == 0) {
                break
            } else if (j == j_max) {
                num++;
                process.stdout.write(i + ","); // 注意一下console.log会自动换行,如果使用console.log 可以结合数组来输出
                if (num % 5 == 0) {
                    process.stdout.write("\n");
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    程序运行结果如下图所示:
    在这里插入图片描述

    3.5 Go 语言实现

    package main
    
    import "math"
    import "fmt"
    
    func main() {
    	var num int = 0 //用来计数
    	for i := 100; i < 201; i++ {
    		j_max := int(math.Sqrt(float64(i)))
    		//fmt.Println(j_max)
    		//fmt.Println(num)
    		for j := 2; j < (j_max + 1); j++ {
    			if i%j == 0 {
    				break
    			} else if j == j_max {
    				num++
    				fmt.Printf("%d,", i)
    				if num%5 == 0 {
    					fmt.Println()
    				}
    			}
    		}
    	}
    	fmt.Println()
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    程序运行结果如下图所示:
    在这里插入图片描述
    至此今天的学习就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习编程的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!


    在这里插入图片描述

        好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
        如果我的博客对你有帮助、如果你喜欢我的博客内容,请 点赞评论收藏 一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
     编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了 关注 我哦!

  • 相关阅读:
    GateWay网关组件
    GitHub 下载量过百万,阿里 P8 秘密分享的「亿级并发系统设计」
    K8S的安装kubernetes-dashboard服务起来了,访问不到解决
    CSS清除浮动的五种方法(超详细)
    小学生学python --python环境搭建(包括正常,专业,学生版)
    【图解算法数据结构】搜索与回溯算法篇 + Java代码实现
    【GD32F427开发板试用】FreeRTOS移植工程
    Mxnet速查_CPU和GPU的mnist预测训练_模型导出_模型导入再预测_导出onnx并预测
    android 各种偶现问题记录
    汇编语言实验3:DEBUG的使用
  • 原文地址:https://blog.csdn.net/xw1680/article/details/133634999