洛谷 P2613 【模板】有理数取余

题目描述

给出一个有理数c=\frac{a}{b}c=ba,求c\ \bmod 19260817c mod19260817的值。

输入输出格式

输入格式:

 

一共两行。

第一行,一个整数aa。
第二行,一个整数bb。

 

输出格式:

 

一个整数,代表求余后的结果。如果无解,输出Angry!

 

输入输出样例

输入样例#1: 复制
233
666
输出样例#1: 复制
18595654

说明

对于所有数据,0\leq a,b \leq 10^{10001}0a,b1010001

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define mod 19260817
using namespace std;
char s[10011];
long long a,b;
long long d0,x0,y0;
long long read(){
    scanf("%s",s);
    int len=strlen(s),num=0;
    for(int i=0;i<len;i++)
        num=(num*10+s[i]-'0')%mod;
    return num;
}
void exgcd(long long a,long long b,long long &d,long long &x,long long &y){
    if(!b){ d=a;x=1;y=0; }
    else{ exgcd(b,a%b,d,y,x);y-=(a/b)*x; }
}
int main(){
    a=read();b=read();
    exgcd(b,mod,d0,x0,y0);
    if(d0!=1){
        puts("Angry!");
        return 0;
    }
    else{
        printf("%lld",a*((x0%mod+mod)%mod)%mod);
        return 0;
    }
}

 

转载于:https://www.cnblogs.com/cangT-Tlan/p/9930247.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值