Wednesday, November 19, 2008

Прости броеви

Пак математика :) Овде ставам два алгоритми за генерирање на прости броеви.

Првиот алгоритам генерира табела од која брзо може да се види дали некој број е прост.


int i,j;
int N = 100;

boolean isprime[] = new boolean[N+1];

for (i=2;i<=N;i++) {
isprime[i]=true;
}

for (i=2;i<=N;i++) {
if (isprime[i]==true) {
for (j=2*i;j<=N;j+=i) {
isprime[j]=false;
}
}
}

Вториот алгоритам генерира низа во која се чуваат простите проеви.


int i,j;
int prime[] = new int[1000];
int numofprimes=1;
boolean pom;
prime[0]=2;

for (i=3;i<1000;i++) {
// we check if i is a prime number
pom=true;
for (j=0;j<numofprimes;j++) {
if (prime[j]<=Math.sqrt((double)i)) {
if (i%prime[j]==0) {
pom=false;
break;
}
} else {
break;
}
}
if (pom==true) {
prime[numofprimes]=i;
numofprimes++;
}
}

No comments: