Java 中从 1 到 100 的素数:在 Java 中显示 1 到 100
已发表: 2021-02-08目录
介绍
首先,让我们从质数定义开始。 如果一个数只能被 1 和它自己整除,则称它为质数。 如果我们被要求说出从 1 到 100 的素数,那么在纸上检查每个数字并说出它是否是素数将是一项乏味的任务。 没关系,我们可以编写代码来做到这一点,而 java 让事情变得简单。
Java 是一种流行且使用最多的语言,它之所以成为阳光灿烂的日子,是因为它提供了面向对象编程、平台独立性、预定义库等特性。
让我们构建一个打印从 1 到 100 的素数的代码并逐步完成。 开始吧!
Java程序
在跳转到代码之前,我们将了解检查数字是否为质数的算法。 首先,我们需要遍历从 1 到 N 的所有数字,并维护一个正确除以给定数字的数字计数。 如果计数是 2,那么我们可以得出结论,给定的数字是素数,否则它不是素数。 这是执行此操作的代码。
诠释n = 5 ; 诠释c = 0 ; for ( int i= 1 ;i<=n;i++) 如果(n%i== 0 ) C++; 如果(c== 2 ) System.out.println(n+ ” 是一个素数” ); 别的 System.out.println(n+ ” 不是素数” ); |
在上面的代码片段中,n 是要检查的数字是否是素数,c 是存储适当除数计数的变量。 如果我们找到合适的除数,我们将在 1 到 n 范围内循环并增加计数。
退出循环后,我们正在检查计数是否为 2 即; 只有两个真除数(1 和它本身)。 如果是,则将其定为素数,否则为非素数。 谈到上述代码的时间复杂度,它是线性的,所以它是 O(n) 复杂度代码。

现在我们被要求打印从 1 到 100 的素数,我们需要对 1 到 100 之间的每个数字运行相同的算法并存储素数。 这是执行此操作的代码。
ArrayList<Integer> a= new ArrayList<>(); for ( int n= 1 ; n<= 100 ; n++){ 诠释c = 0 ; for ( int i = 1 ; i <= n; i++) 如果(n % i == 0 ) C++; 如果(c == 2 ) a.添加(n); 别的 继续; } System.out.println(a); |
在上面的代码中,我们声明了一个 ArrayList 来存储 1 到 100 范围内的所有素数。现在我们有两个 for 循环,第一个 for 循环用于循环 1 到 100 之间的所有数字,第二个 for 循环是我们之前的素数算法。 在为每个数字运行质数算法后,如果它是质数,我们将其推入 ArrayList。

退房:印度的 Java 开发人员薪水
完成循环后,我们打印了 ArrayList,它显示了 1 到 100 之间的所有质数。谈到上面代码的时间复杂度,我们可以看到有两个 for 循环。 所以它是一个 O( n²) 复杂度代码。
我们已经在上面的代码中硬编码了范围,如果我们想在用户输入的范围内打印素数怎么办?
给定输入范围内的素数
整个算法与上面的代码几乎相似,唯一的区别是用户输入范围的下限和上限。
让我们现在构建代码!
扫描仪 sc=新的扫描仪(System.in); int 低=sc.nextInt(); int 上=sc.nextInt(); ArrayList<Integer> a=new ArrayList<>(); for(int n=lower;n<=upper;n++){ 诠释 c = 0; for (int i = 1; i <= n; i++) 如果 (n % i == 0) C++; 如果 (c == 2) a.添加(n); 别的 继续; } System.out.println(a); |
在上面的代码中,我们正在初始化一个扫描器来读取用户输入。 我们已经声明了两个变量 lower 和 upper 并用用户输入分配这些变量。 我们要做的是打印范围 [lower, upper] 之间的所有素数。 我们之前的算法完成了这项任务,并将所有素数附加到 ArrayList 中。

另请阅读: Java 项目理念和主题
从世界顶级大学在线学习软件开发课程。 获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。
结论
我们已经了解了素数的定义,通过算法来判断一个数是否为素数,扩展该算法以查找从 1 到 100 的素数。后来我们使用了 java 扫描器来读取用户输入调整要检查的数字范围是否为素数,构建了一种算法,用于在用户给定的范围内打印素数。
既然您已经知道如何检查一个数字是否为素数,那么如何在给定范围内打印素数。 尝试实现一些挑战,例如使用函数实现它,使用对象实现它,使用递归构建算法,尝试在 java 中使用一些其他集合,如果可能的话尝试优化代码等等。因为实践可以帮助你掌握编程语言, 帮助您克服语法和实现的歧义。
如果您想提高您的 Java 技能,您需要掌握这些 Java 项目。 如果您有兴趣了解有关 Java、全栈开发的更多信息,请查看 upGrad 和 IIIT-B 的全栈软件开发执行 PG 计划,该计划专为工作专业人士设计,提供 500 多个小时的严格培训,9 个以上的项目和任务、IIIT-B 校友身份、实用的实践顶点项目和顶级公司的工作协助。
什么是质数?
什么是埃拉托色尼筛?
埃拉托色尼筛法是一种古希腊用于寻找素数的算法。 该算法以其简单和高效而闻名,因为它的时间相当快,但它产生的素数非常好。 该算法通过从合数中消除每个素数的所有倍数来工作,从 2 的倍数开始,到 N 的倍数结束(N 是您要为其找到素数的最后一个数字)。 埃拉托色尼是一位希腊数学家,被认为是埃及亚历山大图书馆的创始人。 他以计算地球的周长和直径而闻名。
什么是数据结构和算法?
数据结构是一种存储数据的方式,以便计算机程序可以检索和修改它。 数据结构是一种编程语言抽象。 它本身可能是一个实体,也可能是另一个数据实体的一部分。 它可能是数据本身,也可能是访问和操作其他数据的机制。 数据结构由数据定义、数据类型、内容和可应用于内容的操作组成。 算法是解决计算机问题的逐步过程。 每个算法都是一系列动作,将导致问题的解决方案。