天天看點

Go語言 for循環案例九九乘法表水仙花數(100到10000)求素數(優化版)

Go語言 for循環案例

  • 九九乘法表
  • 水仙花數(100到10000)
  • 求素數(優化版)

九九乘法表

package main

import "fmt"

func main() {
	for i:=1; i<=9;i++  {
		for j:=1;j<=i;j++{
			fmt.Printf("%d*%d=%d\t",i,j,i*j)
		}
		fmt.Println()
	}
}

           
Go語言 for循環案例九九乘法表水仙花數(100到10000)求素數(優化版)

水仙花數(100到10000)

package main

import (
	"fmt"
	"math"
)

func main() {
	//求100~10000之間的水仙花數
	for num := 100; num < 10000; num++ {
		number := num
		sum:=0
		var a int
		if (num<1000){
			a=3
		}else{
			a=4
		}
		for number > 0 {
			j := number % 10 //取出number的每一位
			sum=sum+int(math.Pow(float64(j),float64(a)))
			number/=10
		}
		if(sum==num){
			fmt.Printf("%d\t",num)
		}

	}
}

           
Go語言 for循環案例九九乘法表水仙花數(100到10000)求素數(優化版)

求素數(優化版)

package main

import (
	"fmt"
	"math"
)

func main() {
	count:=0
	var arr [101]int
	for i:=0;i<=100 ; i++ {
		arr[i]=i
		arr[1]=0 //1不是素數,将其挖掉
	}
	for i:=2;i<=int(math.Sqrt(100)) ;i++  {
		for j :=i+1; j<=100 ;j++  {
			if(arr[i]!=0 &&arr[j]!=0){
				if (arr[j]%arr[i]==0){
					arr[j]=0
				}
			}
		}
	}
	// 将非0的數組元素周遊,即為1-100之間全部的素數
	for i:=0;i<=100 ; i++ {
		if(arr[i]!=0){
			count+=1
			fmt.Printf("%d\t",arr[i])
		}
	}
	fmt.Println("\n1-100之間素數的個數是%d\n",count)
}

           
Go語言 for循環案例九九乘法表水仙花數(100到10000)求素數(優化版)