用while和for循环均实现一次,求1000以内所有的质数。质数:只能够1和它本身整除
#include <stdio.h>
void zhishu1() {
int i = 2;
printf("2\n");
while (i < 1000) {
int j = 2;
int prime = 1;
while (j * j <= i) {
if (i % j == 0) {
prime = 0;
break;
}
j++;
}
if (prime) {
printf("%d\n", i);
}
i++;
}
}
void zhishu2()
{
int i, j;
printf("2\n");
for (i = 3; i < 1000; i += 2) {
for (j = 2; j * j <= i; j++) {
if (i % j == 0) {
break;
}
}
if (j * j > i) {
printf("%d\n", i);
}
}
}
int main(int argc, const char *argv[])
{
zhishu1();
zhishu2();
return 0;
}