Primes

Description

A pretty straight forward task, calculate the number of primes between 2 integers.

Given 2 integers A ≤ B < 105 what’s the number of primes in range from A to B inclusive.

Note: A prime number is a positive integer greater than 1 and is divisible by 1 and itself only. For N to be prime it is enough to test the divisibility of numbers less than or equal to square root of N.

Input

As many as 1000 lines, each line contains 2 integers A and B separated by a space. Input is terminated when A = B = -1 (Do not process this line).

Output

For every line in input – except for the last line where A = B = -1 - print the number of prime numbers between A and B inclusive.

Sample Input

0 9999
1 5
-1 -1

Sample Output

1229
3
 
 
 
#include<stdio.h>
#include<math.h>
#include<string.h>
int a[100001] = {0};
int main()
{
    int  b, n, m;
    int i, j, t;
    a[0]=1;
    a[1] = 1;
    for(i = 2; i<= 100001; i++)
                    if(!a[i])
                    for( j = 2; j*i <= 100001; j++)
                      a[i*j] = 1;
    while( scanf( "%d%d", &n, &m) == 2 )
    {
         
           int count = 0,k = 0;
           if( n == -1 && m == -1 )
               break;
               else
               {
                   if(n<0)
                   n=0;
                   for( i = n; i <= m; i++ )
                        if( a[i] == 0 )
                        count++;
                         printf( "%d\n", count);
                  }
    }
}
原文地址:https://www.cnblogs.com/zsj576637357/p/2264675.html