Consider the following algorithm to find all the prime numbers less than a given positive number N Start with all the numbers in an array al =(2,3,4,5,...,N-1). Now, keeping a[0]=2, filter out of this array all other numbers that are divisible by 2 to leave {2,3,5,7,9,11,13,15,17.) Next, keeping a[1]=3, filter out of the remainder of the array, all numbers that are divisible by 3, leaving {2,3,5,7,11,13,17,..} At the ith iteration, keep all), and filter from a[i+1)..a[L-1), all numbers that are divisible by a[i), where L is the current length of the array. By the end of this process, all the numbers remaining in the array are prime numbers. Using the filter pattern discussed in the notes, write a C program that implements this algorithm. (There are many algorithms to find prime numbers - the question asks for the implementation of the above algorithm, in order to practise the use of the filter pattern. expects that the number N is read from the keyboard and that the numbers are written out on a single line with spaces between them. For example: Input Result Enter the upper limit: 10 2 357 100 Enter the upper limit: 2 357 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

Programming Logic & Design Comprehensive
9th Edition
ISBN:9781337669405
Author:FARRELL
Publisher:FARRELL
Chapter6: Arrays
Section: Chapter Questions
Problem 17RQ
icon
Related questions
Question

In c programming

Consider the following algorithm to find all the prime numbers less than a given positive
number N
Start with all the numbers in an array al ={2,3,4,5,.N-1}.
Now, keeping a[0]=2, filter out of this array all other numbers that are divisible by 2 to
leave {2,3,5,7,9,11,13,15,17.}
Next, keeping a[1]=3, filter out of the remainder of the array, all numbers that are divisible
by 3, leaving {2,3,5,7,11,13,17,.}
At the ith iteration, keep a[i], and filter from a[i+1],..a[L-1], all numbers that are divisible
by alil, where L is the current length of the array.
By the end of this process, all the numbers remaining in the array are prime numbers.
Using the filter pattern discussed in the notes, write a C program that implements this
algorithm. (There are many algorithms to find prime numbers - the question asks for the
implementation of the above algorithm, in order to practise the use of the filter pattern.
expects that the number N is read from the keyboard and that the numbers are written out
on a single line with spaces between them.
For example:
Input Result
10
Enter the upper limit:
2 357
100
Enter the upper limit:
2 357 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79
83 89 97
Transcribed Image Text:Consider the following algorithm to find all the prime numbers less than a given positive number N Start with all the numbers in an array al ={2,3,4,5,.N-1}. Now, keeping a[0]=2, filter out of this array all other numbers that are divisible by 2 to leave {2,3,5,7,9,11,13,15,17.} Next, keeping a[1]=3, filter out of the remainder of the array, all numbers that are divisible by 3, leaving {2,3,5,7,11,13,17,.} At the ith iteration, keep a[i], and filter from a[i+1],..a[L-1], all numbers that are divisible by alil, where L is the current length of the array. By the end of this process, all the numbers remaining in the array are prime numbers. Using the filter pattern discussed in the notes, write a C program that implements this algorithm. (There are many algorithms to find prime numbers - the question asks for the implementation of the above algorithm, in order to practise the use of the filter pattern. expects that the number N is read from the keyboard and that the numbers are written out on a single line with spaces between them. For example: Input Result 10 Enter the upper limit: 2 357 100 Enter the upper limit: 2 357 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
int main(void)
{
int a[MAX_SIZE);
int N;
int L; * the current size of the list */
* read in the upper limit. Keep reading until
a valid number between 3 and the maximum that
can be handled by the array is entered /
printf("Enter the upper limit:\n");
do {
scanf("%d", &N);
} while (N<3 || N>MAX_SIZE+2);
* write your solution here . /
* write out the result - DO NOT CHANGE THIS /
for(i=0;i<L;i++)
printf("%d ",a[i]);
printf("\n");
}
Transcribed Image Text:int main(void) { int a[MAX_SIZE); int N; int L; * the current size of the list */ * read in the upper limit. Keep reading until a valid number between 3 and the maximum that can be handled by the array is entered / printf("Enter the upper limit:\n"); do { scanf("%d", &N); } while (N<3 || N>MAX_SIZE+2); * write your solution here . / * write out the result - DO NOT CHANGE THIS / for(i=0;i<L;i++) printf("%d ",a[i]); printf("\n"); }
Expert Solution
steps

Step by step

Solved in 2 steps with 2 images

Blurred answer
Knowledge Booster
Fundamentals of Boolean Algebra and Digital Logics
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Programming Logic & Design Comprehensive
Programming Logic & Design Comprehensive
Computer Science
ISBN:
9781337669405
Author:
FARRELL
Publisher:
Cengage