Since problems and programs are key to the study of computer science, computer scientists are naturally interested in classifying problems. In classifying problems, it has been discovered that there really are unsolvable problems. For example, some student might have written a program P1 in Java to sort a list of numbers D1 into numeric order as part of a class assignment. So, the infinite loop checking problem is unsolvable. Such a problem is not just hard, it is impossible.
Some problems are inherently harder than others.
So hard in fact, that they are in essence unsolvable. Instead hardness is a measure of how long a program runs when it is executed with some input data. In other words, the time complexity of a program is what we use to measure the hardness of a program. On the other hand, we say that A problem is determined to be easy or hard based on the program with the lowest time complexity that can be written to solve the problem. An diagram might be helpful.