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

    点我看题目

    题意 : 这个题是求逆元的,怎么说呢,题目看着很别扭。。。。就是给你a和m,让你求一个最小的x满足a-1x (mod m).或者ax≡1 (mod m).通俗点说呢,就是找一个最小的x,他满足的条件的是a*x取余m等于1.

    思路 :这个题反正数据不是很大,枚举就行了,因为维基百科中说的,两个数必须是互质的,所以判断一下,还有这个题特别逗的是m是1的时候x肯定也是1,我觉得任何一个数取余1都应该是0,可是这里显然不是这样的。这个题还可以用扩展的欧几里德算法,也可以做。

    #include <stdio.h>
    #include <math.h>
    #include <iostream>
    #include <string.h>
    
    using namespace std ;
    
    int gcd(int a,int b)
    {
        return (b>0)?gcd(b,a%b):a;
    }
    int main()
    {
        int T ;
        scanf("%d",&T);
        while(T--)
        {
            int a,m ;
            scanf("%d %d",&a,&m) ;
            if(gcd(a,m) != 1)
            {
                printf("Not Exist
    ") ;
                continue ;
            }
            int flag ;
            for(int i = 1 ; i <= m ; i++)
            {
                if((a*i-1)%m == 0)//这里是因为当m为1的时候如果直接用(a*i)%m==1的话有误了。
                {
                    flag = i ;
                    break;
                }
            }
            printf("%d
    ",flag) ;
        }
        return 0 ;
    }
    View Code
  • 相关阅读:
    视图与URL配置--Hello world
    初始Django
    Django 学习之前提
    MySQL--解决中文乱码
    第二课时之c#语言基础
    第一课时之c#程序设计概述
    hdu--1029--思维题
    hdu--1028--dp||递推||母函数
    hdu--1026--bfs&&优先队列&&打印路径
    hdu--1027-next_permutation||dfs
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3588524.html
Copyright © 2011-2022 走看看