title: Does a simple for loop have exponential complexity?
body: <p>The time complexity of an algorithm is defined as the amount of time taken by it to run as a function of the length of the input.</p>
  
  <p>If I have a simple for loop function in C, which runs for a given input n then:<br>
  the length of n is log n(number of bits required to represent it). 
  Since input is log n and the loop runs n times, the code runs exponentially many times in it's input length ( 2^(log n) = n))<br>
  C code:</p>
  
  <pre><code>int forfunction(unsigned int n){
    unsigned int i=0;
    for(;i&lt;n;i++){
      // do something ordinary
    }
    return 0;
  }
  </code></pre>
  
  <p>This for loop being an example.</p>
  
  <p>But we will never hear anyone say, that such a for loop program is exponential in it's input (the bits required to store n). Why is it so? The only difference I see is that this is a program and time complexity is defined for an algorithm. But even if it is, then why does this not have an impact/taken into account when we want to do a rough time complexity of a program?</p>
  
  <p>EDIT:
  Further clarification: I find it reasonable to claim it is exponential in it's input ( might be wrong =) ). If it so, then if a simple for loop is exponential, then what about other hard problems? Clearly this for loop is not a worry for anyone today. Why is it not? Why does this not have (much) real world implications when compared to other hard problems(EXP,NP-Hard,etc...)? Note: I am using hard the way it used to define NP-Hard problems.</p>