1013 数素数
数素数
题目描述:
令 P**i 表示第 i 个素数。现任给两个正整数 M≤N≤104,请输出 P**M 到 P**N 的所有素数。
输入格式:
输入在一行中给出 M 和 N,其间以空格分隔。
输出格式:
输出从 P**M 到 P**N 的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。
输入样例:
5 27
输出样例:
11 13 17 19 23 29 31 37 41 43
47 53 59 61 67 71 73 79 83 89
97 101 103
思路:先预处理求出前10000个素数,然后再输出想要的素数
代码:
package main
import (
"fmt"
"math"
)
func main() {
var n,i,a,b,k int
k=0
var primenumber []int
i=2
//求前10000个素数
for n<10000{
if prime(i)==true{
primenumber=append(primenumber,i)
n++
}
i++
}
fmt.Scanf("%d%d",&a,&b)
for i=a;i<=b;i++{
k++
if i==b{
fmt.Printf("%d",primenumber[i-1])
}else{
//为了满足十个数字换行
if k==10{
fmt.Printf("%d\n",primenumber[i-1])
k=0
}else{
fmt.Printf("%d ",primenumber[i-1])
}
}
}
}
//判断素数
func prime(n int) bool{
for i:=2;i<=int(math.Sqrt(float64(n)));i++{
if n% i==0{
return false
}
}
return true
}
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!