质数是指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。
下面的程序计算区间[a, b]之间的质数
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
void Prime(int min, int max)
{
int i, j, count = 0, square, isPrime;
for (i = min; i <= max; i++)
{
isPrime = 1;
square = (int)sqrt(i);
for (j = 2; j <= square; j++)
{
if (i % j == 0)
{
isPrime = 0;
break;
}
}
if (isPrime)
{
if ((count + 1) % 10 == 0)
{
printf("%4d\n", i);
}
else
{
printf("%4d ", i);
}
count++;
}
}
}
int main(int argc, char* argv[])
{
int min, max;
if (argc != 3)
{
printf("%s <a> <b> 计算[a, b]之间的质数\n", argv[0]);
_getch();
return 0;
}
min = atoi(argv[1]);
max = atoi(argv[2]);
min = min > 2 ? min : 2;
if (min > max)
{
printf("没有任何结果\n");
_getch();
return 0;
}
Prime(min, max);
_getch();
return 0;
}