【Go语言入门100题】028 判断素数 (10 分) Go语言 | Golang

简介: L1-028 判断素数 (10 分) Go语言|Golang本题的目标很简单,就是判断一个给定的正整数是否素数。

L1-028 判断素数 (10 分) Go语言|Golang

本题的目标很简单,就是判断一个给定的正整数是否素数。


输入格式:

输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2^31 的需要判断的正整数。


输出格式:

对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。


输入样例1:

2
11
111

结尾无空行


输出样例1:

Yes
No


结尾无空行


思路:

什么是素数?也称质数。一个大于1的正整数,如果除了1和它本身以外,不能被其他正整数整除,就叫素数。

如2,3,5,7,11,13,这些只能被自己说是1整除,但是不能被其他正整数整除。


所以我们只需要先判断这个数是不是1,因为这个数很特殊,然后我们在从2到这个数进行判断,看看有没有数能把将他整除。没有的话就是素数了。


代码如下:

package main
import (
  "fmt"
  "math"
)
func main() {
  var nums int
  _,_=fmt.Scan(&nums)
  for i:=0;i<nums;i++{
    var num int
    _,_=fmt.Scanln(&num)
    if Su(num) {
      if i==nums-1 {
        fmt.Printf("Yes")  // 控制最后一行的回车,其实用列表存起来可能会理解简单一点。
      }else{
        fmt.Printf("Yes\n")
      }
    }else{
      if i==nums-1 {    // 控制最后一行的回车
        fmt.Printf("No")
      }else{
        fmt.Printf("No\n")
      }
    }
  }
}
func Su(num int) bool {
  if num==1 { // 1不是质数
    return false
  }
  for i:=2;i<int(math.Sqrt(float64(num)))+1;i++{  // 直接开根号,能让这个数的范围减少
    if num%i==0 {  // 如果能有数被整出,那么就不是素数了
      return false
    }
  }
  return true
}
相关文章
|
21小时前
|
Go 开发者
Golang深入浅出之-Go语言流程控制:if、switch、for循环详解
【4月更文挑战第21天】本文介绍了Go语言中的流程控制语句,包括`if`、`switch`和`for`循环。`if`语句支持简洁的语法和初始化语句,但需注意比较运算符的使用。`switch`语句提供多分支匹配,可省略`break`,同时支持不带表达式的形式。`for`循环有多种形式,如基本循环和`for-range`遍历,遍历时修改原集合可能导致未定义行为。理解并避免易错点能提高代码质量和稳定性。通过实践代码示例,可以更好地掌握Go语言的流程控制。
8 3
Golang深入浅出之-Go语言流程控制:if、switch、for循环详解
|
21小时前
|
Go
Golang深入浅出之-Go语言函数基础:定义、调用与多返回值
【4月更文挑战第21天】Go语言函数是代码组织的基本单元,用于封装可重用逻辑。本文介绍了函数定义(包括基本形式、命名、参数列表和多返回值)、调用以及匿名函数与闭包。在函数定义时,注意参数命名和注释,避免参数顺序混淆。在调用时,要检查并处理多返回值中的错误。理解闭包原理,小心处理外部变量引用,以提升代码质量和可维护性。通过实践和示例,能更好地掌握Go语言函数。
9 1
Golang深入浅出之-Go语言函数基础:定义、调用与多返回值
|
1天前
|
Go
Golang深入浅出之-Go数据类型详解:整型、浮点型与布尔型
【4月更文挑战第20天】Go语言基础数据类型包括整型(有符号和无符号,如`int8`、`uint32`)、浮点型(`float32`、`float64`)和布尔型(`true`、`false`)。理解它们的范围和特性,以及注意溢出、精度损失、类型转换等问题,是编写高效Go代码的关键。例如,整型溢出可能导致模运算,浮点数比较可能有精度误差,布尔型不应用于数值计算。了解这些易错点,能帮助写出更健壮的代码。
14 0
|
1天前
|
Go
Golang深入浅出之-Go语言基础语法:变量声明与赋值
【4月更文挑战第20天】本文介绍了Go语言中变量声明与赋值的基础知识,包括使用`var`关键字和简短声明`:=`的方式,以及多变量声明与赋值。强调了变量作用域、遮蔽、初始化与零值的重要性,并提醒读者注意类型推断时的一致性。了解这些概念有助于避免常见错误,提高编程技能和面试表现。
16 0
|
2天前
|
编译器 Go 开发者
Go语言入门|包、关键字和标识符
Go语言入门|包、关键字和标识符
20 0
|
1月前
|
Go 开发工具 git
编程笔记 GOLANG基础 003 Go语言开发环境搭建
编程笔记 GOLANG基础 003 Go语言开发环境搭建
|
存储 JSON API
Go语言:RESTful API 服务,急速入门!
REST即表述性状态传递(英文:Representational State Transfer,简称REST),它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性
407 0
Go语言:RESTful API 服务,急速入门!
|
机器学习/深度学习 前端开发 Java
go语言可以做什么?入门Go语言
go语言可以做什么?入门Go语言
132 0
|
安全 编译器 Go
Go语言,Protobuf 入门详解!
Protobuf 是 Protocol Buffers 的简称,是一种与语言、平台无关,可扩展的序列化结构化数据的数据描述语言,Protobuf作为接口规范的描述语言,可以作为设计安全的跨语言PRC接口的基础工具。
277 0
Go语言,Protobuf 入门详解!
|
存储 IDE Java
go语言简单入门
go语言简单入门
137 0