The negative order integer challenge, but it's Prime Time!
Processing, 161 bytes
int p(int n){for(int k=1;++k&lt;=sqrt(n);)if(n%k&lt;1)return 0;return 1;}void t(int n){for(int i=1,j;i&lt;=n;i++){if(p(i)&lt;1)continue;for(j=i;j&gt;0;j--)print(p(j)&lt;1?&quot;&quot;:j);}}

One function does the primality checking, the other does the printing. Call it by t(7)
Ungolfed
The first function does the primality checking. It returns an int instead of a boolean since this way more bytes are saved. (int instead of boolean, 0 instead of false, 1 instead of true)
int Q103891p(int n){
  for(int k=1;++k&lt;=sqrt(n);)
    if(n%k&lt;1)return 0;
  return 1;
}

The second function prints out the string. It iterates through every number, if it is not a prime, skip to the next iteration. If it is a prime, it continues down to the printing inside another for-loop. Again, if the number is prime, then we print it, otherwise not.
void Q103891(int n){
  for(int i=1,j;i&lt;=n;i++){
    if(p(i)&lt;1)continue;
    for(j=i;j&gt;0;j--)
      print(p(j)&lt;1?&quot;&quot;:j);
  }
}