整除(简单数论)

4745 - 第十四课:整除

给定两个整数 a,ba,b ,你需要判断 aa 是否能被 bb 整除。

aa 能被 bb 整除当且仅当 aa % b=0b=0

输入

输入以整数 T(1≤T≤325)T(1T325)开始,表示测试用例的数量。

每个测试用例将包含整数 a,b(−10200≤a≤10200),b≠0a,b(10200a10200),b=0 且 bb 在int 范围内。

输出

共有 TT 行。对于每组测试数据,输出一行信息 "Case t: A" (不含引号)。

 其中 tt 表示对应的是第几组测试数据,如果 aa 能被 bb 整除,则 A 为 divisible, 否则 A为 not divisible

样例

输入

6
101 101
0 67
-101 101
7678123668327637674887634 101
11010000000000000000 256
-202202202202000202202202 -101

输出

Case 1: divisible
Case 2: divisible
Case 3: divisible
Case 4: not divisible
Case 5: divisible
Case 6: divisible

分析:除法竖式

/*************************************************************************
	> File Name: 4745.cpp
	> Author: Henry Chen
	> Mail: 390989083@qq.com 
	> Created Time: 六  9/ 5 22:41:55 2020
 ************************************************************************/

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int T;
	cin >> T;
	for(int t = 1;t <= T;t++)
	{
		string s;
		cin >> s;
		long long m;
		scanf("%lld",&m);
		m = abs(m);
		long long sm = 0;
		for(int i = 0;i < s.size();i++)
		{
			if(s[i] == '-') continue;
			sm *= 10;
			sm += s[i]-'0';
			sm %= m;
		}
		if(sm == 0) 
		{
			printf("Case %d: divisible
",t);
		}
		else
		{
			printf("Case %d: not divisible
",t);
		}
	}
	return 0;
}


原文地址:https://www.cnblogs.com/mzyy1001/p/13620229.html