1007 素数对猜想
1007 素数对猜想
题目描述:
让我们定义d**n为:d**n=p**n+1−p**n,其中p**i是第i个素数。显然有d1=1,且对于n>1有d**n是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。
现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。
输入格式:
输入在一行给出正整数N。
输出格式:
在一行中输出不超过N的满足猜想的素数对的个数。
输入样例:
20
输出样例:
4
思路:
先把素数求出来放一个切片里面,然后让每个相邻的切片相减看看是不是等于2
代码:
package main
import (
"fmt"
"math"
)
func main() {
var n,sum,num int
var p []int
fmt.Scanf("%d",&n)
if n<=3{
fmt.Println(0)
return
}
for i:=2;i<=n;i++{
if prime(i)==true{
p=append(p,i)
num++
}
}
for i:=0;i<num-1;i++{
if p[i+1]-p[i]==2{
sum++
}
}
fmt.Println(sum)
}
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 协议 ,转载请注明出处!