求素数,怎样利用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)); } }