编辑代码

#include <stdio.h>
#include <string.h>

#include <math.h>
int  msprime(int  m )
{  
      int i = 2,k,p;
    while ( i <= m && (m%i))
        i++;

    /**********Program**********/
if(m==i)
    {
        for(k=1;;k++)
        {                 
            p=pow(2,k)-1;                 
            if(p>m)
                break;
            else if(p==m)
                return k;
        }          
    }
   /**********  End  **********/
    return  0;
}
int main()
{
    int m,k; 
    for(m=2;m<=100;m++)
        if (k=msprime(m))
            printf("%d=2^%d-1\n",m,k);
    return 0;
}