求素数
来源:互联网 发布:费用优化例题 编辑:程序博客网 时间:2024/05/17 04:54
求素数
Time Limit: 100ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
求小于n的所有素数的数量。
输入
多组输入,输入整数n(n<1000000),以0结束。
输出
输出n以内所有素数的个数。
示例输入
100
示例输出
4
提示
来源
zp
示例程序
#include <stdio.h> #include <math.h> #define SIZE 1000000 int Prime[SIZE]; void JudgePrime(); int main() { int n; int i; int sum; JudgePrime(); while (scanf("%d", &n)) { if (n == 0) { break; } if (n <= 2) { printf("0\n"); continue; } sum = 0; for (i=2; i<n; i++) { if (Prime[i] == 1) { sum++; } } printf("%d\n", sum); } return 0; } void JudgePrime() { Prime[0] = 0; Prime[1] = 0; int i, j; for (i=2; i<SIZE; i++) { Prime[i] = 1; } for (i=2; i<SIZE; i++) { if (Prime[i] == 1) { for (j=i*2; j<SIZE; j+=i) { Prime[j] = 0; } } } }
0 0