?有時我們需要特定的素數(shù),比如我們在對哈希表取模是就要用到。這你給出了一段小程序可以找出給定數(shù)附近的素數(shù)。程序在VC6.0下編譯通過
轉(zhuǎn)自好特吧
www.hot818.net
#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;
}
#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;
}
轉(zhuǎn)自好特吧
www.hot818.net