Czy umiesz potęgować SPOJ

0

Ma ktoś jakieś sugestie co może być nie tak? Na SPOJ wywala błędną odpowiedz.```

#include <stdlib.h>

void potega(int a,int b)
{
    a=a%10;
    b=b%10;

    switch(a){
        case 0:
            printf("0\n");
            break;
        case 1:
            printf("1\n");
            break;
        case 2:
            if(b==1||b==5||b==9)
                printf("2\n");
            else if(b==2||b==6||b==0)
                printf("4\n");
            else if(b==3||b==7)
                printf("8\n");
            else if(b==4||b==8)
                printf("6\n");
            break;
        case 3:
            if(b==1||b==5||b==9)
                printf("3\n");
            else if(b==2||b==6||b==0)
                printf("9\n");
            else if(b==3||b==7)
                printf("7\n");
            else if(b==4||b==8)
                printf("1\n");
            break;
        case 4:
            if(b==1||b==3||b==5||b==7||b==9)
                printf("4\n");
            else if(b==2||b==4||b==6||b==8||b==0)
                printf("6\n");
            break;
        case 5:
            printf("5\n");
            break;
        case 6:
            printf("6\n");
            break;
        case 7:
            if(b==1||b==5||b==9)
                printf("7\n");
            else if(b==2||b==6||b==0)
                printf("9\n");
            else if(b==3||b==7)
                printf("3\n");
            else if(b==4||b==8)
                printf("1\n");
            break;
        case 8:
            if(b==1||b==5||b==9)
                printf("8\n");
            else if(b==2||b==6||b==0)
                printf("4\n");
            else if(b==3||b==7)
                printf("2\n");
            else if(b==4||b==8)
                printf("6\n");
            break;
        case 9:
            if(b==1||b==3||b==5||b==7||b==9)
                printf("9\n");
            else if(b==2||b==4||b==6||b==8||b==0)
                printf("1\n");
            break;
    }
}
int main()
{
    int n;
    unsigned long int a,b;
    scanf("%d",&n);

    while(n>0)
    {
        scanf("%ld %ld",&a,&b);
        potega(a,b);
        n--;
    }
    return 0;
}
3

Nie jest prawdą w ogólności, że a^b \equiv a^{b \pmod n} \pmod n (nie mówiąc już, że mogłeś te wyniki stablicować i wyszedłby ładniejszy kod).

0

Zrobiłem potem na tablicy to zadanie tylko byłem ciekaw czemu w tym kodzie jest błąd. Dzięki za odpowiedz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1