0% found this document useful (0 votes)
26 views

Python Part B Answers I

Mdek GN d

Uploaded by

sri2krishna123
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
26 views

Python Part B Answers I

Mdek GN d

Uploaded by

sri2krishna123
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 29
Unit | You 4. What are the building blocks of an algorithm? Explain in detail. < 2/2 ) ChataPT The building blocks of an algorithm are fundamental components or concepts that come together to form a well-defined set of instructions for solving a specific problem. Algorithms are step-by-step procedures or sets of rules that define how a task is to be performed. The key building blocks of an algorithm include: Input: * Definition: The input is the information or data that the algorithm receives at the beginning of its execution. + Role; It represents the initial state or the starting point of the algorithm. + Example: Ina sorting algorithm, the input could be an unsorted list of numbers. 2. Output: © Definition: The output is the result or solution produced by the algorithm after it has executed. + Role: It represents the goal or the desired outcome of the algorithm. + Example: For a sorting algorithm, the output would be the sorted list of numbers. 3. Control Structures: * Definition: Control structures dictate the flow of the algorithm by determining the order in which instructions are executed. * Types: + Sequence: Executing instructions in a linear order. + Selection (Conditional Statements): Making decisions based on conditions (e.9,, if statements). * Iteration (Loops): Repeating a set of instructions until a certain condition is met (eg. for, while loops). + Example: Using an if statement to check if a number is positive or negative. 4. Variables: * Definition: Variables are used to store and manipulate data within the algorithm * Role: They represent memory locations that hold values, and their values can change during the execution. + Example: ina calculation algorithm, variables might store numeric values for computation. 5. Operations/Actions: * Definition: Operations or actions represent the specific tasks or computations that the algorithm performs. + Role: They define how the input is transformed to produce the desired output. + Example: Ina mathematical algorithm, operations could be addition, subtraction, multiplication, etc. 6. Termination Condition: * Definition: The termination condition specifies when the algorithm should stop its execution. + Role: it prevents the algorithm from running indefinitely. + Example: in a sorting algorithm, the termination condition is met when the entire list is sorted 7. Comments: * Definition: Comments are annotations within the algorithm's code that provide explanations or additional information. * Role: They enhance the readability and understanding of the algorithm. + Example: Adding comments to explain the purpose of a particular section of code. 8. Pseudocode/Flowchart: * Definition: Pseucocode is a high-level, human-readable description of the algorithm's logic. A flowchart is a graphical representation of the algorithm's flow. * Role: They help in planning and designing the algorithm before actual coding. + Example: Writing pseudocode to outline the steps of a search algorithm, By combining these building blocks in a systematic way, algorithms can be designed to solve a wide range of problems efficiently and effectively. The clarity and correctness of these building blocks contribute to the overall quality and reliability of the algorithm. You 2. Briefly describe iteration and recursion. Explain with algorithm. ChatGPT Certainly! Both iteration and recursion are methods used in programming to execu solve problems by breaking them down into smaller steps epetitive tasks oF Iteration: Definition: Iteration involves repeatedly executing a set of instructions or a block of code a certain number of times or until a condition is met. It uses loops to execute a block of code multiple times. Algorithm using Iteration (Example: Sum of Numbers): rey ©) Copy code Algorithm: CalculateSum(numbers) Input: numbers (list of integers) Ne tas eres Cs ee aT For each number in numbers: EXs[ Rela ae) cabs In this algorithm, the *calculatesum* function takes alist of numbers as input. It initializes a to zero and uses a loop (iteration) to go thro ist. Itadds each number to t! h nut variable, and finally returns the total sum. Recursion: Definition: Recursion is a programming techniq aproblem. here a function calls itself directly or indirectly to solve ks down a problem into smaller, similar subproblems and solves each subproblem until it reaches a base case. Algorithm using Recursion (Example: Factorial Calculation): [ers orse 3 CalculateFactorial(n) can y factorial (factorial of n) Ifn Crate « Else: Return n * CalculateFactorial(n - i) In this algorithm, the *CalculateFactorial” function calculates the factorial of a number ‘n°. If ‘n* isO or i (the base se), it returns 1. Otherwise, it calls itself with *n-1* and multiplies t result by “n° Comparison: * Iteration: * Uses loops (for, while) to repeat a block of code. * Typically involves maintaining a loop control variable. + Well-suited for tasks that require repetitive execution and hav a clear stopping condition. * Recursion: * Involves the function calling itself. * Breaks a problem into smaller subproblems until reaching a base case. + Well-suited for tasks that can be divided into identical smaller tasks and have clear base cases. Both iteration and recursion have their strengths and weaknesses. Iteration is often more straightforward and easier to understand, while recursion can off ran elegant and concise solution for problems that can be broken down into subproblems. The choice between ition and sion depends on the problem. and programming context. You 3, Explain Algorithmic problem solving. ChatGPT Algorithmic problem solving is a process of designing and implementing a step-by-step procedure (algorithm) to solve a specific computational problem. It involves breaking down a complex problem into smaller, more manageable sulsproblems and devising efficient and effective solutions for each subproblem. Here are the key aspects of algorithmic problem solving: 1. Understanding the Problem: + Problem Statement: Clearly understand the problem statement. Define the input and output requirements. Identify any constraints or special conditions. + Example: If the problem is to find the sum of numbers ina list, understand that the input is a list of numbers, and the outputis the sum of those numbers. 2. Breaking Down the Problem: + Decomposition: Break down the problem into smaller, more manageable subproblems. Identify the relationships and dependencies between these subproblems. + Example: For the sum of numbers, break it down into reading the ist, initializing a sum, and adding each number to the sum. 3. Designing an Algorithm: + Step-by-Step Procedure: Devise a step-by-step procedure (algorithm) for solving each subprablem. Clearly define the sequence of operations to achieve the desired result. + Example: For the sum of numbers, design an algorithm that iterates through the list, adds each element to a running sum, and returns the final sum. 4. Analyzing Complexity: + Time Complexity: Evaluate how the execution time of the algorithm scales with the size of the input. * Space Complexity: Assess the amount of memory or space required by the algorithm. + Example: Analyze whether the sum algorithm has a linear time complexity, ie., O(n), where nis the size of the list 5. Implementing the Algorithm: + Translate to Code: Write code in a programming language that follows the designed algorithm. Use appropriate data structures and control structures. + Example: Write a function in a programming language that implements the sum algorithm for a given list ofnumbers. 6. Testing and Debugging: * Test Cases: Create test cases to validate the correctness of the algorithm. Test it with various inputs, including edge cases. + Debugging: Identify and fix any errors or bugs in the code through systematic testing and debugging, 7. Optimization: + Refinement: Evaluate the efficiency of the algorithm and identify opportunities for optimization. + Example: Optimize the sum algorithm by using built-in functions or optimizing the loop structure. 8. Documenting and Communicating: + Documentation: Document the algorithm, including its purpose, inputs, outputs, and any assumptions made. + Communication: Clearly communicate the problem-solving approach, algorithm, and code to others who may read or use it. Algorithmic problem solving is fundamental to computer science and programming. It emphasizes a systematic and structured approach to tackling computational challenges, ensuring that solutions are correct, efficient, and maintainable, Developing strong algorithmic problem-solving skills is crucial for success in various fields related to computer science and beyond. n algorithm and chart to calculate 4 2 ChatGPT Certainly! B Pytl le for Algorithm: [is Meroe 3 CalculatePower(base, exponent) Poem Uta ) result (result of base raised to the exponent) Set result = Initialize a loop variable i from 1 to exponent (inclusive) Multiply result by base Sabai 10?: Che of “count * i: Yes/No Decision: * Yes: Ent + No: Return End: The flo This flowchart represents a simple loop that starts with ‘count * count’, andr the process until “count * is greater than 10 ina flowchart. You 8,a) Write a program to find the net salary of an employee. ChatGPT To calculate the net salary of an employee, various fact rs such as basic salary, allowances, and deductions need to be taken into account. Below is a simple Python program that calculates the net salary based on these components: aa) fw Re (basic_salary, allowances, deductions): Cree Seo ae SCE ROUT tS net_salary = gross_salary - deductions arena Poteet L ay, a eit rs anes Eva Ue Cae aeene ot ent Gioia Core eet eee ated en Olt Cera ee TC Me tao ECE eee BCL oe st) Te er we ba eve ta Ra) In this program: The ‘calculate_net_salary” function takes three parameters: “basic_salary", ‘allowances*,and “deductions”. It calculates the *gross_salary’ by adding the ‘basic_salary* and ‘allowances* The ‘net, salary’ is then calculated by subtracting the “deductdons* fromthe “gross_salary” The user is prompted to input values for ‘basic_salazy*, “allowances*,and “deductions The program calculates and prints the net salary based on the provided inputs. Note: This is a basic example, and you may need to adapt it according to the specific rul your organization, tax laws, and other factors that influence salary calculations. and regulations of You b) Write a program to guess an integer number in ChatGPT fake ee pe Url) POC eem ist O 8) SRS aot ee upper_bound = 100 Pere Ce Ce ea Tee PRO eee a eM) TTL) Cae ane) guessed = Prenat ) POC EEC user_guess = int(input( » a ee eee ecm rad Piet fora Pee Cece pte ) print( ) guess_number() “upper bound on th input. The game continu The program disp! I fret y int range for the random lower_bound, upper_bound) wer_bound} and {upper_bound} ber: SOC tt ol oa Loa TE LD 1 ecret_num isa ber.") am to insert a card ina I Python program that inserts a card into a sorted list of cards. The cards are and the program maintains the sorted order after the insertion. eo Ste Sseemecbael 10h c- MeL bss AML LTD Bd Pa index < len(sorted_cards) sorted_cards[index] < new_card: ca oar ET bad Mor bas eee ad ei) ee ea sorted_cards_list = [ new_card_to_insert = insert _card(sorted_cards_list, new_card_to_insert) Pesta Aer att t eeo) Int + The “insert_card” fu (new_card"). * It finds the o: ‘ted list to insert the n + The *insext* method is then us rtth ‘Output: eee Thi assumes that the nted a: of Hearts). You can adapt the program onth ntation of cards in b) Write a program to find the minimurr ChatGPT inly! Hi gram that finds the minimum num Pur) fees Nro) Basie Me PRP ALUM Lo Que 2 2 Ue sa ds min_number = numbers[0] Telos elas number < min_number: min_number = number min_number numbers_list = [8, 3, minimum number = find_minimum_number(numbers_list) fyaninae In this pI The “find _mindmum_number* function tak lis numbers (“numbers *) input. le to the first element of the list. jh the list and updates *min_number:” ifit finds a smaller number. y, it returns the minimum number found. utput: ra) fuer seer) UMP LM Los f numbers to find the minimum in a You 10. a) Dri ChatGPT t, and print the result involv Compare num1, num2, and num3 | Print "num1 is i] Ae ca l Iv anne Print "num2 is | the greatest" | Print "num3 is Scena heccy al Explanation of the Flowchart: Start: The flo Input numt, num2, num3: Th s three distinct num Compare num, num2, and num3: the three num Is num1 > num2?: If true, go to the nex Print “num? is the greatest”: if numtis not greater than num3, print "num2 is Print “num3 is the greatest”: If numt and num: h print “nur End: aking pr \d prints the result. [wre aco aw a flow chart to find the sum of the series 1+2+3+.....+100. ChatGPT fae ease eer dae) Evaro k Bt aonb r 4a i] (iterator) to 1 | Is i > 100? Explanation of the Flowchart: Start: The flowchart b Initialize sum variabl Increment i by Back to Is i > 100?: Repeat the f Print sum: Print the final sum rt ends here. op that iterat to 100, adding e You 11. Outline the Towers of Hanoi problem. Suggest a solution to the Towers of Hanoi problem with relevant diagrams. ChatGPT Towers of Hanoi Problem: The Towers of Hanoiis a classic problem in computer science and mathematics that involves moving a tower of disks from one peg to another, subject to the following constraints: Three pegs are given, often labeled A, B, and C A tower of disks of different sizes is initially placed on one peg (sou from bottom to top. The goal is to move the entire tower to another peg (target peg), following these rules: ce peg), arranged in decreasing order * Only one disk can be moved at atime. * Adisk can only be placed on top of a larger disk or an empty peg. + Only the top disk of a peg can be removed Solution to Towers of Hanoi: The Towers of Hanoi problem can be solved using a recursive algorithm. The algorithm is based on the observation that moving a tower of 72 disks can be broken down into three steps: Move the top 7 — 1 disks from the source peg to an auxiliary peg. Move the largest disk from the source peg to the target peg. Move the 2 — 1 disks from the auxiliary peg to the target peg. This process is repeated recursively for the smaller towers until the base case is reached (moving a tower of 1 disk), which is a simple move from the source peg to the target peg. Diagrams: Here's a step-by-step representation of the Towers of Hanoi solution with three disks: Initial State: [we Step t Move disk 1 from peg A to peg C Step 2 Move disk 2 from peg A to peg B. Step 3 Move disk { from peg Cto peg B eer Step 4: Move disk 8 from peg Ato peg C. Step 5 Move disk | from peg Bto peg A. [hs ots ogress Step 6: Move disk 2 from peg Bto peg C. [is oto ores Step 7; Move disk 1 from peg A to peg C. Now, the tower has been successfully moved from peg A to peg C. This process can be generalized to towers with more disks. The key is to use an auxiliary peg for intermediate moves You 12, Identify simple strategies for developing an algorithm. ChatGPT Developing an algorithm involves designing a step-by-step set of instructions to solve a specific problem. Here are some simple strategies to help in the process: . Understand the Problem: * Clearly understand the problem statement, requirements, and constraints. * Identify the input data and expected output. . Break Down the Problem: * Divide the problem into smaller, more manageable sub-problems. * Solve each sub-problem independently. . Use Pseudocode: * Write pseudocode before diving into actual code. * Focus on the lagic and steps rather than syntax. . Define Inputs and Outputs: * Clearly define the input parameters and expected output. + Understand the data types and formats involved. . Explore Examples: * Work through examples manually to understand the problem better. * Identify patterns and relationships. . Consider Edge Cases: * Consider special cases or edge cases that might require specific handling. * Ensure the algorithm works for a variety of inputs. . Use Iterative Refinement: * Start with a basic version of the algorithm. + Test and refine the algorithm through iterations. . Choose the Right Data Structures: * Select appropriate data structures for efficient storage and retrieval of data. * Consider arrays, lists, sets, maps, etc., based on the requirements. . Avoid Redundancy: * Eliminate redundant or unnecessary steps. * Simplify the algorithm while maintaining correctness. . Handle Errors and Edge Cases: * Include error handling and consider how the algorithm will handle unexpected situations. + Ensure the algorithm gracefully handles edge cases. . Optimize for Efficiency: * Consider the time and space complexity of the algorithm. + Optimize for better performance if needed. . Seek Feedback: + Share your algorithm with others and seek feedback. * Collaborate with peers to improve the algorithm. . Test Rigorously: * Test the algorithm with various inputs, including boundary cases. * Verify that the algorithm produces correct results. . Document Clearly: * Document the algorithm with clear explanations. * Include comments to help others understand your thought process. . Refactor and Improve: * Be open to refactoring and improving the algorithm over time. * Consider alternative approaches and optimizations. Remember that developing algorithms is often an iterative process. It's essential to be patient, test thoroughly, and be willing to refine your approach based on feedback and testing results. You 48. Mention the different types of iterative structures allowed in python. Explain the use of continue and break statements with an example. ) ChatGPT In Python, there are two main types of iterative structures: for loops and while loops. 1. For Loops: A “for” loop is used to iterate over a sequence (such as a list, tuple, string, or range). The basic syntaxis: Pal fm es keely bale K ed sequence: Here, ‘variable’ takes the values from the "sequence" one by one, and the indented code block is executed for each value. Example: python eee Lely x num in numbers: This will output: fae ro 2. While Loops: A ‘while loop is used to repeatedly execute a block of code as long as a certain condition is true. The basic syntax is: Oa ferro e condition: The loop continues until the *condition* becomes false. Examy vay fm Rew gC Cr ead while count < 5: al core} rh This will output: Le oe Continue and Break Statements: Continue Statement: * The *continue’ state ttiteration and itis used to skip the rest of the code inside a loop for t! Move to the next iteration. « Itis often used when you want to skip certain elements in the loop based on a condition. Break Statement: * The ‘break statement is used to exit the loop prematurely, even if the loop condition is still true * Itis often used whena s loop immediately fic condition is met, and you want to stop t Example: Let's use the “continue” and “break” statements in a loop: Oa fae To Du o3 ac) Sosa ROLL 3 aod sea) ntinue eee) Dea (num) This will output: eho Explanation: iteration and the loop skips to the * When “num” is 3, the “continue” statement is encour without printing 3 * When “num: is 4, the “break statement is encountered, and the loop is exited immediately. These statements provide control flow within loops, allowing you to customize the behavior ba: specific conditions. Ss You 14, (a) What is an algorithm? Summarise the characteristics of a good algorithm. © ChatapT Algorithm: Analgorithm is a step-by-step set of instructions or a finite sequence of well-defined, unambiguous, and executable instructions designed to perform a specific task or solve a particular problem. Algorithms are fundamental to computer science, mathematics, and various other fields, providing a systematic approach to problem-solving. Characteristics of a Good Algorithm: 1. Clear and Unambiguous: + Each step of the algorithm must be clear and unambiguous, leaving no room for interpretation 2. Finiteness: + The algorithm must have a finite number of steps. It should eventually terminate after a finite number of executions. 3. Input and Output: + Thealgorithm should have well-defined inputs and outputs. It specifies what data is required as input and what results are expected as output. 4. Effectiveness: + The algorithm must be effective, meaning that it can be executed using basic operations in a finite amount of time. 5. Feasibility: + Thealgorithm should be feasible in terms of time and resources. It should be practical and applicable to the given problem. 6. Correctness: + Thealgorithm should produce the correct output for all valid inputs. It must solve the intended problem accurately. ‘7. Generality: + Agood algorithm is designed to handle a broad range of inputs, not just specific cases. It should be generalizable to different instances of the problem. 8. Modularity: * The algorithm should be modular, meaning it can be divided into smaller, manageable subproblems or modules. Each module should perform a specific task. 9. Scalabil + The algorithm should be scalable, meaning it can handle larger inputs without a significant increase in time or resources. 10. Adaptability: + The algorithm should be adaptable to changes in requirements or input conditions. It should accommodate variations without a complete redesign. AL. Optimality: « If possible, the algorithm should be optimized for time and space efficiency. It should strive to achieve the desired results using minimal resources. 12. Ease of Understanding: + The algorithm should be easy to understand, both by the person who designed it and others who may need to review or implement it. 113. Stepwise Refinement: « The algorithm can be developed through stepwise refinement, starting with a high-level description and progressively adding more details. In summary, a good algorithm is a systematic, well-defined set of instructions that solves a problem effectively, efficiently, and with clarity. It considers factors such as correctness, feasibility, and scalability to provide a reliable and practical solution. You 14. (b) Outl gorithm ford ) ChatGPT c Here's ana d ir number plaintext ee NE Crete eS TEN Sera NM ted ph eC rkehGe 1s 2) PC reCiee ECM sc CECT ace 2. Initialize a variable num to 1. (The first odd number) 3. While count is less than n, do steps 4-6. 4. Print the current value of num. Cee ec ae 6. Increment num by 2. (Move to the next odd number) aor Explanation: a counter “count® to keep at the pri nt value of “num, whi the “count “num * variable by 2 to mo odd number. ‘* Step 7: The algorithm ends Example: s. W d execute the algorithm: ou fae Se While count < n: esta Bisa aire ra ge Output: You 15. (a) What is a programming language? What are its types? Explain them in detail with their advantages and disadvantages. ChatGPT Programming Language: A programming language is a formal system used to communicate instructions to a computer. It consists ofa set of rules and syntax that allows programmers to write software programs and applications. Programming languages are crucial for developing software, enabling humans to convey their algorithms and logic to computers in a way that the machines can understand and execute. Types of Programming Languages: Programming languages can be categorized into several types based on their features, use cases, and levels of abstraction. Here are some major types: Low-Level Languages: + Machine Language: Consists of binary code (0s and 1s) directly understood by the computer's CPU. Extremely low-level. + Assembly Language: Uses mnemonic codes to represent machine-level instructions. Slightly more human-readable than machine language. Advantages: * Direct control over hardware. + Efficient use of system resources. Disadvantages: + Lack of portability + Steeper learning curve. . High-Level Languages: + C, C++, Java, Python, etc Closer to human language and more abstract than low-level languages. Programs are written using keywords and syntax that are easier to understand. Advantages: * Easier to learn and read. * Greater portability across platforms. + Higher-level abstractions. Disadvantages: + Generally slower than low-level languages. + May require additional resources. Procedural Languages: + ¢, Pascal, Fortran, etc.: Programs are structured as procedures or routines, Follows a step-by-step procedure for execution. ‘Advantages: + Clear, structured code, * Well-suited for mathematical and scientific applications. Disadvantages: + Limited support for modularity and reusability. ‘Object-Oriented Languages: * Java, C+, Python, etc: Programs are organized as objects, which encapsulate data and behavior. Follows principles like inheritance and polymorphism. ‘Advantages: * Encourages code reuse. + Supports modular design. * Improved maintenance. Disadvantages: + Learning curve for beginners. + Potentially slower execution. Functional Languages: + Haskell, Lisp, Scala, et immutability and avoiding side effects. ‘ograms are composed of mathematical functions. Emphasizes Advantages: * Easier to reason about. * Conourrency-friendly. Disadvantages: + Steeper learning curve. + Limited adoption in some domains. Scripting Languages: + Python, Ruby, JavaScript, etc.: Interpreted languages often used for automation, web development, and scripting. Advantages: + Rapid development. + Dynamic typing. Disadvantages: + Slower execution than compiled languages. + May lack certain features of compiled languages. Conclusion: Choosing a programming language depends on factors such as the nature of the project, performance requirements, developer expertise, and specific application domains. Each type of language has its strengths and weaknesses, and the choice often involves trade-offs based on project goals and constraints. Tow 18. (b) Writ n° find, index” that finds /en number in the Fl Sur (foo ee meee G05 9 CO aes era eee Ta find_index* that ta inth ChatGPT feo Enter a number to find its index in the Fibonacci sequence: & 1@ user inputs the number 8, and ti t will output: rd feet The number 8 at index ¢ RCo ae run the s You 16. (a) What is recursive function? What are its advantages and disadvantages? Compare it with iterative function ) ChatGPT Recursive Functior A recursive function is a function that calls itself during its execution. In other words, the function performs atask in part and delegates the remaining task to itself. Recursive functions are often used to solve problems that can be broken down into smaller, similar sub-problems. Advantages of Recursive Functions: 1 Simplicity and Readability: Recursive solutions can be more concise and easier to understand than their iterative counterparts, especially for problems that exhibit a recursive structure. 2, Elegant Solutions: Recursive solutions often reflect the natural structure of a problem. Some problems are inherently recursive, and using a recursive approach can lead to more elegant and intuitive solutions. 3, Modularity: Recursive functions can be more modular, breaking down a complex problem into smaller, manageable pieces. Each recursive call handles a sub-problem independently. Disadvantages of Recursive Funct 1. Performance Overhead: Recursive function calls can incur a performance overhead due to the additional function call overhead and the use of the call stack. This can lead toa higher memory consumption and potentially slower execution, 9, Stack Overflow: IF not managed properly, recursive functions can lead to a stack overflow if the recursion depth is too deep. This is particularly true for problems that require a large number of recursive calls. 3, Debugging Complexity: Debugging recursive functions can be more challenging than debugging iterative functions. Understanding the sequence of recursive calls and their parameters can be complex. Comparison with Iterative Functions: Advantages of Iterative Functions: 4 Performance: Iterative functions often perform better in terms of speed and memory usage, especially for problems where recursion would lead to deep call stacks. 9, Predictable Resource Usage: Iterative functions typically have a more predictable resource usage pattern since they don't rely on the call stack to manage function calls. 3, Tail Optimization: Some programming languages and compilers support tail call optimization for certain recursive patterns, effectively converting the recursion into an iterative form. Disadvantages of Iterative Functions: 1 Readability: In some cases, iterative solutions may be less intuitive or less readable than their recursive counterparts, especially for problems that naturally exhibit a recursive structure. 9, Code Length: Iterative solutions may require more lines of code to achieve the same result asa recursive solution, leading to potentially longer and more complex code, In summary, the choice between recursion and iteration depends on the nature of the problem, the programming language and environment, and considerations related to performance and code readability. Both approaches have their strengths and weaknesses, and the best choice often depends on the specific context of the problem at hand, tll In the list, are prime num ChatGPT tainly! Here’ fae ygene sieve_of_eratosthenes(n, i=2): ra ar Bord ec-(+ 1 Co OD) numbers = list(range(2, n + 1)) multiples = list(range(i * 2, n + i, i)) CO eee Pe ee multiples] fone ss Uae (eee GL Sean ee tas) eC Rec Une ee Sec) ad n = intCinput( Seti ees MS ae seers TOD) print¢ Thi fines a recursive function “sieve_of_eratosthenes* that finds all prime nun ven integer “n’ using th of Eratosthenes (thm. The the value of *n*, and the script display the list of prime numbers up to *n asa

You might also like