编程每日一练(多语言实现)基础篇:求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 <stdio.h>
#include <math.h>
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;
}

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

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()

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

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();
                    }
                }
            }
        }
    }
}

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

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");
            }
        }
    }
}

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

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()
}

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


在这里插入图片描述

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

猜你喜欢

转载自blog.csdn.net/xw1680/article/details/133634999