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

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

where is my error ....... i got WA
Послано GoGo 25 мар 2002 20:28
#include <stdio.h>

long n,m,y,x;

void read_data()
 {
  FILE *f=stdin;
  fscanf(f,"%ld%ld%ld",&n,&m,&y);
 }

long expon_modul(int a)
 {
  long c=0,d=1,i;
  for(i=15;!(n & (1 << i));i--);
  for(;i>=0;i--)
   {
    c*=2;
    d=(d*d)%m;
    if(n & (1 << i))
     {
      c++;
      d=(d*a)%m;
     }
   }
  return(d);
 }

void solve()
 {
  long i;
  if(!y)printf("0 ");
  for(i=1;i<m;i++)
   if(expon_modul(i)==y)printf("%ld ",i);
 }

void main()
 {
  read_data();
  solve();
 }
read the output specification again
Послано MadPsyentist/Sam 26 мар 2002 18:12
> #include <stdio.h>
>
> long n,m,y,x;
>
> void read_data()
>  {
>   FILE *f=stdin;
>   fscanf(f,"%ld%ld%ld",&n,&m,&y);
>  }
>
> long expon_modul(int a)
>  {
>   long c=0,d=1,i;
>   for(i=15;!(n & (1 << i));i--);
>   for(;i>=0;i--)
>    {
>     c*=2;
>     d=(d*d)%m;
>     if(n & (1 << i))
>      {
>       c++;
>       d=(d*a)%m;
>      }
>    }
>   return(d);
>  }
>
> void solve()
>  {
>   long i;
>   if(!y)printf("0 ");
>   for(i=1;i<m;i++)
>    if(expon_modul(i)==y)printf("%ld ",i);
>  }
>
> void main()
>  {
>   read_data();
>   solve();
>  }