大于1的自然数不是素数就是合数,只要能被素数整除就不是素数,据此逐个打印素数,可不调用库函数sqrt。

#include<stdio.h>

int main(void)

{

        int i, j;

        int prime[50] = { 2, 3, 5, 7, 11, 13, 17, 19};

        int k = 8;

        for(i = 20; i < 201; ++i) {

                for(j = 0; j < k; ++j) {

                        if( i % prime[j] == 0)

                                break;

                }

                if(j == k) {

                        prime[k++] = i;

                        printf("%d ", i);

                }

        }

        return 0;

}