求素数,怎样利用ss()?
求100以内的全部素数,每行输出9个,素数之间空一个格子。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。要求定义和调用函数ss(m)判断m是否为素数,当m为素数时返回1,否则返回0。
程序代码:#include <stdio.h>
#include <string.h>
#define UPPER_LIMIT 100
int ss(unsigned int value)
{
int i, j;
static int array[UPPER_LIMIT+1]={0}, flag=1;
if (flag)
{
for (i=2; i*i<UPPER_LIMIT; i++)
{
if (array[i] == 0)
{
for (j=i*i; j<=UPPER_LIMIT; j+=i)
{
array[j] = 1;
}
}
}
flag = 0;
}
if (value < 2 || value > UPPER_LIMIT)
{
return 0;
}
return (array[value]^1);
}
void main()
{
int i;
for (i=0; i<100; i++)
{
printf("%d %d\n", i, ss(i));
}
}