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 non-computable problem is a problem for which no algorithm can always give a correct solution for every input. The most well-known 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 run in an infinite loop, no general algorithm can solve this problem in all cases.
- A non-computable problem cannot be solved by any algorithm.
- The Halting Problem is the most famous example of a non-computable problem.
- It determines whether a program halts or runs forever for a given input.
- Programs that run in infinite loops make this problem undecidable.
- The term computer program can also be replaced by a Turing Machine or an algorithm.
Examples of Computable Problems
These are four simple examples of the computable problem:
- Computing the greatest common divisor of a pair of integers.
- Computing the least common multiple of a pair of integers.
- Finding the shortest path between a pair of nodes in a finite graph.
- Determining whether a propositional formula is a tautology.

| 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.
- A non-computable problem cannot be solved by any algorithm.
- The Halting Problem is the most famous example of a non-computable problem.
- It determines whether a program halts or runs forever for a given input.
- Programs that loop infinitely make this problem undecidable.
- The term “computer program” can be replaced by “Turing machine” or “algorithm”.
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.

| 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).
- To show that a problem is not computable, we need to show that no algorithm exists that solves the problem.
- Since there are an infinite number of possible procedures, we cannot just list all possible procedures and show why each one does not solve the problem.
- Instead, we need to construct an argument showing that if there were such an algorithm, it would lead to a contradiction.
- The core of our argument is based on knowing the Halting Problem is non-computable.
- If a solution to some new problem P could be used to solve the Halting Problem, then we know that P is also non-computable.
- That is, no algorithm exists that can solve P since if such an algorithm exists, it could be used to also solve the Halting Problem, which we already know is impossible.
- The proof technique where we show that a solution for some problem P can be used to solve a different problem Q is known as a reduction.
- A problem Q is reducible to a problem P if a solution to P could be used to solve Q.
- This means that problem Q is no harder than problem P since a solution to problem Q leads to a solution to problem P.