编程介的小学生 2020-09-18 08:23 采纳率: 0.4%
浏览 41

素数判定 程序的编写

Problem Description
对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。

Input
输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。

Output
对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。

Sample Input
0 1
0 0

Sample Output
OK

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-25 09:41
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    # 读入数据
    data <- readLines()
    
    for (i in 1:length(data)) {
      if (data[i] == "") break # 如果输入为空行则跳出循环
      x <- as.integer(strsplit(data[i], " ")[[1]][[1]])
      y <- as.integer(strsplit(data[i], " ")[[1]][[2]])
      
      if (x < 0 || y < -39 || y > 50) continue # 防止超出范围
      
      # 计算表达式 n^2 + n + 41 的值
      value <- sqrt(x^2 + x + 41)
      value2 <- x * (value - floor(value))
      
      if (is.odd(value2)) { 
        print("Sorry")
      } else {
        print("OK")
      }
    }
    

    这段代码使用了 R 语言来解决题目。首先,我们读入所有的输入数据,并将它们存储在一个列表 data 中。然后,对于每一个输入,我们检查它是否为空行。如果是空行,则跳出循环。接下来,我们计算表达式 n^2 + n + 41 的值。这里我们使用平方根和取整函数来确保结果是整数。如果表达式的值不是素数,则输出 “Sorry”,否则输出 “OK”。

    评论

报告相同问题?