Computable and NonComputable Problems (original) (raw)

Last Updated : 2 May, 2026

Problems are classified as computable or non-computable based on whether they can be solved by an algorithm. Computable problems have a clear, step-by-step procedure that always lead to a correct solution while non-computable problems cannot be solved by any algorithm, no matter how much time or resources are given.

**Computable Problems

A computable problem is a problem for which an algorithm can always give a correct solution for every input. These problems can be solved using a finite sequence of steps, and the algorithm always stops after producing the correct output. Examples include arithmetic calculations, searching, sorting, and many standard computational tasks.

Examples of Computable Problems

These are four simple examples of the computable problem:

computable_problem_diagram

**Advantages **Disadvantages
Efficient algorithms exist for many computable problems Some computable problems require very high computation time
Provide practical and reliable solutions Large memory or resources may be required
Well-defined inputs and outputs make behavior predictable Performance degrades for very large inputs
Easy to analyze and verify correctness Not all computable problems are practically feasible

Non-Computable Problems

A non-computable problem is one for which no algorithm can always give a correct solution. The most famous example is the Halting Problem, which asks whether a program (or Turing machine) will stop or run forever for a given input. Since some programs may loop infinitely, no general algorithm can solve this problem for all cases.

Examples of Non-Computable Problems

**Halting Problem: The problem of determining whether a program (or Turing machine) will halt or run forever for a given input is non-computable. No algorithm can solve this problem for all possible programs and inputs.

non_computable_problem_diagram

**Advantages **Disadvantages
Cover deep questions beyond algorithmic solutions No algorithm exists to solve them
Encourage research in math, logic, and computation Cannot be applied directly to real-world tasks
Help define the limits of machine computation Often involve infinite or undefined computations
Lead to new theories and computational models Difficult to analyze or verify conclusively

**Proving Computability or Non-Computability

We can show that a problem is computable by describing a procedure and proving that the procedure always terminates and always produces the correct answer. It is enough to provide a convincing argument that such a procedure exists. Finding the actual procedure is not necessary (but often helps to make the argument more convincing).