有时我们需要特定的素数,比如我们在对哈希表取模是就要用到。这你给出了一段小程序可以找出给定数附近的素数。程序在VC6.0下编译通过
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int prime(int m)
{
int i,k;
k = (int)sqrt(m);
for(i=2; i<k; i++)
if (m % i == 0)
return 0;
return 1;
}
int main(int argc, char** argv)
{
int input = 0;
int val, ret = 0;
if (argc != 2)
{
printf("usage:find_prime num\n");
exit(-1);
}
input = atoi(argv[1]);
//printf("%d\n",input);
val = input;
//向下找
while (!ret)
{
ret = prime(val);
val--;
}
printf("%d\n", ++val);
//向上找
val = input;
ret = 0;
while (!ret)
{
ret = prime(val);
val++;
}
printf("%d\n", --val);
return 0;
}
转自好特吧
www.hot818.net