zoukankan      html  css  js  c++  java
  • ZOJ 3609 Modular Inverse

    Modular Inverse
    Time Limit: 2 Seconds Memory Limit: 65536 KB
    The modular modular multiplicative inverse of an integer a modulo m is an integer x such that a-1≡x (mod m). This is equivalent to ax≡1 (mod m).

    Input

    There are multiple test cases. The first line of input is an integer T ≈ 2000 indicating the number of test cases.

    Each test case contains two integers 0 < a ≤ 1000 and 0 < m ≤ 1000.

    Output

    For each test case, output the smallest positive x. If such x doesn’t exist, output “Not Exist”.

    Sample Input

    3
    3 11
    4 12
    5 13
    Sample Output

    4
    Not Exist
    8

    #include <iostream>
    #include <string.h>
    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>
    #include <algorithm>
    
    using namespace std;
    int a,m;
    int tag[1005];
    int ans;
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d%d",&a,&m);
            int x=1;
            bool flag=true;
            memset(tag,0,sizeof(tag));
            while(1)
            {
                if(((a*x)%m)==(1%m))
                {ans=x;break;}
                else
                {
                    x++;
                    int num=(a*x)%m;
                    if(tag[num])
                    {
                        flag=false;
                        break;
                    }
                    tag[num]=1;
    
                }
            }
            if(!flag)
                printf("Not Exist
    ");
            else
                printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    模板合集
    1201: 众数问题
    112. 路径总和
    Hibernate的配置及CURD
    5. 最长回文子串
    1120: 最值交换
    1119: 一维数组排序
    1118: 数列有序
    1117: 查找数组元素
    1116: 删除元素
  • 原文地址:https://www.cnblogs.com/dacc123/p/8228707.html
Copyright © 2011-2022 走看看