ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1110. Степень

Why I got Wrong Answer
Послано 555 31 янв 2002 20:30
This is my program : (in C++)

#include <stdio.h>

long P(long a,long n)
{
    long re=1;
    for(long i=1;i<=n;i++)
        re*=a;
    return re;
}

long n,m,y;

long f(long i)
{
    return P(i,n)%m;
}

void main()
{
    int first=1;
    scanf("%ld%ld%ld",&n,&m,&y);
    for(long i=0;i<m;i++)
    {
        if(f(i)==y)
        {
            if(first)
            {

    printf("%ld",i);

    first=0;
            }
            else

    printf(" %ld",i);
        }
    }
    if(first) printf("-1");
}
//End of program

Help me please!
Your P function is incorrect, it may be longer than 2^31-1 :)
Послано Miguel Angel 1 фев 2002 02:16
> This is my program : (in C++)
>
> #include <stdio.h>
>
> long P(long a,long n)
> {
>     long re=1;
>     for(long i=1;i<=n;i++)
>         re*=a;
>     return re;
> }
>
> long n,m,y;
>
> long f(long i)
> {
>     return P(i,n)%m;
> }
>
> void main()
> {
>     int first=1;
>     scanf("%ld%ld%ld",&n,&m,&y);
>     for(long i=0;i<m;i++)
>     {
>         if(f(i)==y)
>         {
>             if(first)
>             {
>
>     printf("%ld",i);
>
>     first=0;
>             }
>             else
>
>     printf(" %ld",i);
>         }
>     }
>     if(first) printf("-1");
> }
> //End of program
>
> Help me please!