R语言 寻找区间内素数和合数

R语言 寻找区间内素数和合数

一个自然数(1,2,3,4,5等)如果大于1并且不能写成两个较小的自然数的乘积,则称为质数。大于1的非质数被称为复合数。

一个复合数是一个正整数,可以由两个较小的正整数相乘而形成。等价地,它是一个正整数,至少有一个除数不是1和它本身。

例子

输入 :2

输出: 素数

解释: 它只能被2整除,所以是质数。

输入: 4

输出: 复合

解释 : 它能被2和4整除,所以是复合数。

输入: 5

输出 :质数

解释 :它只能被5整除,所以是质数。

算法

  • 初始化范围,直到显示质数和合数的地方。
  • 创建一个单独的空列表来存储质数和合数。
  • 由于1既不是质数也不是合数。
  • 我们从2开始检查素数的条件,即i。
  • 从2开始检查每一个正好除以i的数字。
  • 如果除了i以外没有任何数字除以i,那么这个数字就被储存在素数列表中。
  • 否则将被储存在复合数列表中。
  • 它一直执行到n(由我们给定)达到极限。
  • 一旦它从循环中退出,它就把质数和合数都打印成单独的列表。

例子

# R code for Finding composite  and prime numbers  upto 100
# initialize number n
n=100
  
# arranging sequence
x = seq(1, n)
  
# creating an empty place to store the numbers
prime_numbers=c()
  
composite_numbers = c()
for (i in seq(2, n)) {
  if (any(x == i)) {
  
    # prime numbers gets stored in a sequence order
    prime_numbers = c(prime_numbers, i)
    x = c(x[(x %% i) != 0], i)
  }
  
  else{
  
     # composite numbers gets stored in a sequence order
     composite_numbers = c(composite_numbers, i)
  }
}
  
# printing the series
print("prime_numbers")
print(prime_numbers)
  
print("composite_numbers")
print(composite_numbers)

输出

[1] "prim_numbers" 

[1] 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 

[1] "composite_numbers" 

[1] 4 6 8 9 10 12 14 15 16 18 20 21 22 24 25 26 27 28 30 

[20] 32 33 34 35 36 38 39 40 42 44 45 46 48 49 50 51 52 54 55 

[39] 56 57 58 60 62 63 64 65 66 68 69 70 72 74 75 76 77 78 80 

[58] 81 82 84 85 86 87 88 90 91 92 93 94 95 96 98 99 100 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程