【Go语言入门150题】L1-028 判断素数 (10 分) Go语言 | Golang
【摘要】
【题解】【PTA团体程序设计天梯赛】
L1-028 判断素数 (10 分) Go语言|Golang
本题的目标很简单,就是判断一个给定的正整数是否素数。
输入格式:
输入在第一行给出一个正整数N(...
【题解】【PTA团体程序设计天梯赛】
L1-028 判断素数 (10 分) Go语言|Golang
本题的目标很简单,就是判断一个给定的正整数是否素数。
输入格式:
输入在第一行给出一个正整数N(≤ 10)
,随后N
行,每行给出一个小于2^31
的需要判断的正整数。
输出格式:
对每个需要判断的正整数,如果它是素数,则在一行中输出Yes
,否则输出No
。
输入样例1:
2
11
111
- 1
- 2
- 3
结尾无空行
输出样例1:
Yes
No
- 1
- 2
结尾无空行
思路:
什么是素数?也称质数。一个大于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
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
文章来源: blog.csdn.net,作者:小生凡一,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_45304503/article/details/119858039
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)