运行超时,希望能够帮助改一下


#include<stdio.h>
int mymain(int a){
    int i;
    for(i=1;a>=1;i++){
        a=a/10;
    }
    return i-1;
}
int main()
{
    int w,k;
    int min,max;
    int a;
    scanf("%d",&w);
    int i;
    int b[10]={0},x,y,t,s,u=0;
    int m=8,n,p=0,q=0,e;
    while(p==0){
        m=m+2;
        for(n=2;n<=9;n++){
            if(m%n!=0){
                q=0;
                break;
                }
            else{
                q=1;
            }
            }
        p=q;
        }
    for(i=0;mymain(i)<=w+1;i++){
        if(mymain(i)==w){
            min=i;
            break;
        }
    }
    for(i=min;mymain(i)<=w+1;i++){
        if(mymain(i)==w+1){
            max=i-1;
            break;
        }
    }
    while(min<=max){
        if(min%m==0){
            e=min;
            for (x=0;e>=1;x++){
                b[x]=e%10;
                e=e/10;
            }
            t=x;
            for(x=0;x<=t-1;x++){
                for(y=x+1;y<=t-1;y++){
                    if(b[x]!=b[y]){
                        s=1;
                    }
                    else{
                        s=0;
                        break;
                    }
                }
                if(s==0){
                    break;
                }    
            }
            if(s==1){
                printf("%d\n",min);
                u++;
            }
        }
        min=min+2;
    }
    if(u==0){
        printf("not exist");
    }
    return 0;
}

oj上说运行超时,有没有办法缩短运行速度

运行时间长短取决于你的输入,你输入几就要循环 10的几次幂 次

你得先说说这段代码实现什麽功能,才好判断怎么优化。