go语言-素数的判断

问题

输出1-100内的所有prime number。

算法1

判断数n是否为prime number,其实就是找出2到 n − 1 n-1 n1内是否有能被n整除的因子,存在这样的因子则不是素数,反之则素数。

package main

/*
author:michaelbobo
date:20210730
function:To judge the prime number in the range of[1,100] and output them
*/

import "fmt"

func main() {

	for i := 2; i <= 100; i++ {
		if (i == 2) || (i == 3) {
			fmt.Printf("The numbe %d is prime\n", i)
		} else {
			var count int = 0
			for j := 2; j <= (i - 1); j++ {
				flag := i % j
				if flag != 0 {
					count += 1
				}
				if count == (i - 2) {
					fmt.Printf("the number %d is prime\n", i)
				}

			}
		}
	}
}

算法2

判断数n是否为prime number,其实就是找出2到 n \sqrt[]{n} n 内是否有能被n整除的因子,存在这样的因子则不是素数,反之则素数。

package main

import (
	"fmt"
	"math"
)

func main() {
	for i := 1; i <= 100; i++ {
		if i == 2 || i == 3 {
			fmt.Printf("The number %d is prime\n", i)
		} else {
			var count int = 0
			var fact int = 0
			for j := 2; j <= int(math.Floor(math.Sqrt(float64(i)))); j++ {
				if i%j != 0 {
					count += 1
				}
				fact = int(math.Floor(math.Sqrt(float64(i)))) - 2 + 1
				if count == fact {
					fmt.Printf("The number %d is prime\n", i)
				}
			}
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值