Swift程序:显示两个区间之间的素数


本教程将讨论如何编写Swift程序来显示两个区间之间的素数。

素数是指大于1且只有两个因数(1和它本身)的数。例如,3是素数,因为它只有1和3两个因数。

以下是演示:

输入

假设给定的输入是:

Lower Interval = 18
Upper Interval = 42

输出

期望的输出是:

Prime numbers between 18 to 42 are
19
23
29
31
37
41

算法

以下是算法:

步骤1 - 声明上下限区间。

步骤2 - 遍历给定区间中的每个数字。

步骤3 - 跳过1和0,因为它们不是素数。

步骤4 - 声明一个标志变量。它表示给定数字是否为素数。如果标志=0,则该数字为素数;否则不是。

步骤5 - 运行另一个for循环来检查给定数字是否为素数。

步骤6 - 打印输出。

示例

以下程序显示如何显示两个区间之间的素数。

import Foundation
import Glibc
// Declaring lower and upper interval
var lowerInterval = 18
var upperInterval = 36
print("Prime numbers in between (lowerInterval) to (upperInterval)")
// Iterate through each number in the given interval
// Here we use upperInterval+1 because stride () function work from 18 to 35 not 36. 
for x in stride(from:lowerInterval, to: upperInterval+1, by:1){
   // Here we skip 1 because 1 is not a prime number
   if (x == 0 || x == 1){
      continue
   }
   // Flag tells if x is a  prime number or not
   var flag = 0
    
   for y in stride(from:2, to: x/2 + 1, by:1){
      // Checking x is divisible by y, if remainder = 0 then the number is not prime number
      if ((x % y) == 0){
         flag = 1
         break
      }
   }
   // If the flag = 0 then the number is  prime number or else it is not a prime number
   if (flag == 0){
      print(x)
   }
}

输出

Prime numbers in between 18 to 36
19
23
29
31

在上面的代码中,我们找到18到36之间的素数。这里,我们使用嵌套for循环以及stride()函数。外部for循环用于遍历给定区间内的每个数字,内部for循环用于通过查找余数来检查给定数字是否为素数。

for y in stride(from:2, to: x/2 + 1, by:1){
   if ((x % y) == 0){
      flag = 1
      break
   }
}

如果余数等于0,则该数字不是素数,因此flag=1并中断循环。如果余数不等于0,则该数字是素数,因此flag=0并显示该数字。此过程将持续到上限区间。

更新于:2022年12月13日

273 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.