A/B(数论)(取模)

要求(A/B)%9973,但由于A很大,我们只给出n(n=A%9973)(我们给定的A必能被B整除,且gcd(B,9973) = 1)。
Input
数据的第一行是一个T,表示有T组数据。
每组数据有两个数n(0 <= n < 9973)和B(1 <= B <= 10^9)。
Output
对应每组数据输出(A/B)%9973。
Sample Input
2
1000 53
87 123456789
Sample Output
7922
6060

#include
#include
#include
#include
#include
using namespace std;
int a[200][200];
int dp[1005][1005];
int maxn;int r,c;

int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		long long a,n,b;
		scanf("%lld%lld",&n,&b);
		b=b%9973;
		for(int i=0;i<=1000000;i++){
			if((n+i*9973)%b==0){
				a=n+i*9973;
				break;
			}
		}
		long long ans=(a/b)%9973;
		printf("%lld\n",ans);
	}
}
Select Code
#include
#include
#include
#include
#include
using namespace std;
int a[200][200];
int dp[1005][1005];
int maxn;int r,c;

int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		long long a,n,b;
		scanf("%lld%lld",&n,&b);
		b=b%9973;
		for(int i=0;i<=1000000;i++){
			if((n+i*9973)%b==0){
				a=n+i*9973;
				break;
			}
		}
		long long ans=(a/b)%9973;
		printf("%lld\n",ans);
	}
}

总结:

  1. (ab/c)%d==(a%db%d/c%d)

你可能感兴趣的:(数论)