加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

【light-oj】-大数整除(字符串)

发布时间:2021-05-28 02:39:15 所属栏目:大数据 来源:网络整理
导读:Description Given two integers,?a?and?b,you should check whether?a?is divisible by?b?or not. We know that an integer?a?is divisible by an integer?b?if and only if there exists an integer?c?such that?a = b * c. Input Input starts with an

Description

Given two integers,?a?and?b,you should check whether?a?is divisible by?b?or not. We know that an integer?a?is divisible by an integer?b?if and only if there exists an integer?c?such that?a = b * c.

Input

Input starts with an integer?T (≤ 525),denoting the number of test cases.

Each case starts with a line containing two integers?a (-10200?≤ a ≤ 10200)?and?b (|b| > 0,b fits into a 32 bit signed integer). Numbers will not contain leading zeroes.

Output

For each case,print the case number first. Then print?'divisible'?if?a?is divisible by?b. Otherwise print?'not divisible'.

Sample Input

6

101 101

0 67

-101 101

7678123668327637674887634 101

11010000000000000000 256

-202202202202000202202202 -101

Sample Output

Case 1: divisible

Case 2: divisible

Case 3: divisible

Case 4: not divisible

Case 5: divisible

Case 6: divisible

#include <stdio.h>
#include <string.h>
int main()
{	
	int n;
	char a[300];
	int m;
	long long y;
	int l;
	int t=1;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%s %d",a,&m);
		l = strlen(a);
		if(m < 0)
			m = -m;				 			//m作为除数不可以为负  
		printf("Case %d: ",t++);
		if(a[0]=='-')					//m分正负单独处理
		{
			y=(a[1]-'0')%m; 		
			for(int i=2;i<l;i++)
			{
				y=(y*10+(a[i]-'0'))%m;
			}
			if(y==0)
				printf("divisiblen");
			else
				printf("not divisiblen");
		}
		else
		{
			y=(a[0]-'0')%m;
			for(int i=1;i<l;i++)
			{
				y=(y*10+(a[i]-'0'))%m;
			}
			if(y==0)
				printf("divisiblen");
			else
				printf("not divisiblen");
		}
	}
	return 0;
}

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读