2023-03-27 05:26PM
题目:
质数:只能被1或自身整除
需要实现这样的函数:
print_prime(n) n 为最大值。 打印 0 ~ n 之间的所有质数。
例如:
print_prime(15) # => 1,2,3,5,7,11,13
方法一
代码如下:(从3到10之间的质数)
package main
import "fmt"
//质数的特点:
//只可以用被自身和 1 整除
func main() {
var i, k int
//i给k定个范围,k是要除的数
//eg: i=13
// k=2 ==> 有余数, k+1
// k=3 ==> 有余数, k+1
// k=4 ==> 有余数, k+1
// ...
// k=12 ==> 有余数, 每次循环都有余数,所以i为质数
for i = 2; i < 15; i++{
for k = 2; k < i ; k++{
//如果结果有余数则可能是质数,反之,则不是质数
if (i%k == 0){
break;
}else{
//如果i%k,k自增都循环一遍,都有余数,那就是质数, 反之,则不是质数
if k + 1 == i{
//如果k+1==i(它本身)则是质数
fmt.Println("i:", i)
}
}
}
}
}
结果:
i: 3
i: 5
i: 7
i: 11
i: 13
带有1,2质数的代码:
package main
import "fmt"
func zhiShu(number int) []int{
array := []int{}
//只可以被自身和1整除的数为质数
//当为1时,1只有本身,
//当为2的时,2只有1和本身,没有其他数可以除,符合质数的条件
//使1和2等于number,直接输出,不用for循环
if number == 1 {
//当number等于1时,新增一个1
array = append(array, 1)
}else if number == 2{
//当number等于2时,新增1,2
array = append(array, 1, 2)
}else if number >= 2{
array = append(array, 1, 2)
for i := 2; i<=number; i++{
for k := 2; k<i; k++{
if i%k == 0 {
break
}else{
if k+1 == i {
//fmt.Println("i 是", i, "array", array)
array = append(array, i)
}
}
}
}
}
return array
}
func main() {
//调用zhiShu函数
sort_array := zhiShu(15)
fmt.Println(sort_array)
}
结果:
[1 2 3 5 7 11 13]
方法二:
代码如下:
package main
import "fmt"
//题目: 输出10 以内的质数
//质数的特点
//只能被一或自身整除
func main() {
var i int
var k int
for i = 1; i < 15 ;i++{
for k = 2; k <= i; k++{
if (i%k == 0){
//跳出循环
break;
}
}
if(k>(i/k)){
fmt.Println("10以内的质数值为:", i)
}
}
}
结果:
10以内的质数值为: 1
10以内的质数值为: 2
10以内的质数值为: 3
10以内的质数值为: 5
10以内的质数值为: 7
10以内的质数值为: 11
10以内的质数值为: 13
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论