Public Function IsPrime(ByVal n As Integer) As Boolean If n < 4 Then Return True If n Mod 2 = 0 Then Return False Dim k As Integer = Math.Floor(Math.Sqrt(n)) For i = 3 To k Step 2 If n Mod i = 0 Then Return False Next Return TrueEnd Function
Quickly generate prime numbers within n
Public Function GetPrime(ByVal n As Long) As Long() Dim arr(n + 1) As Boolean For i As Long = 2 To n / 2 For j As Long = 2 To i Dim r As Long = i * j If r > n Then Exit For If Not arr(r) Then arr(r) = True Next Next Dim list As New List(Of Long) For i As Long = 2 To n If Not arr(i) Then list.Add(i) Next Return list.ToArrayEnd Function
Http://acm.buaa.edu.cn/problem/187/
#include <iostream>#include <cmath>using namespace std;unsigned short p[1000];int main(void){bool is_prime;int c=2,k;p[0]=2;p[1]=3;for(int i=5;i<7920;i+=2){is_prime=true;k=sqrt((double)i)+1;for(int j=1;j<c-1;j++){if(p[j]>=k){break;}if(i%p[j]==0){is_prime=false;break;}}if(is_prime){p[c]=i;c++;}}int n;while(cin>>n){cout<<p[n-1]<<endl;}return 0;}