判断一个大数是不是某个数的倍数

该博客主要探讨了如何处理大数问题,通过C++和Python两种编程语言实现检查一个大数是否为2到6的倍数。程序中包含了大数的除法模拟和条件判断,用于确定并输出大数的倍数。此外,还展示了Python中处理大数的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大数 n (2<n<1e500), t(1<=t<=100)个测试

n是不是 2,3,4,5,6的倍数,是的话,在一行输出,以空格隔开,升序输出,无的话,输出-1

K. Kids at the Party


卡行末空格啊啊啊啊啊啊啊

字符串输入大数,对每一个因子,模拟手算除法,最后余数为0的话,表明是倍数

卡行末空格。。。。


#include<bits/stdc++.h>
using namespace std;
string s;

bool ac(string s,int n)
{
	int len=s.size();
	int sum=0;
	for(int i=0;i<len;i++)
	{
		sum=(s[i]-'0'+sum*10)%n;
	}
	if(sum==0) return true;
	else return false;
}

int t;
int main()
{
	cin>>t;
	while(t--)
	{
		cin>>s;
		int flag=1;
		for(int i=2;i<=6;i++)
		{
			if(ac(s,i)) 
			{
				if(flag==0) cout<<" ";//处理空格
				cout<<i;
				flag=0;
			}
		}
		if(flag) cout<<-1;
		cout<<endl;
	}
	return 0;
}



python 里int无界
万能队友!

t=eval(input())#eval()返回传入字符串的表达式的结果,换成int也可以
ok=1
for i in range(t):
    ok=1
    s=""
    v=eval(input())
    if v%2==0:
        s="2"
        ok=0
    if v % 3 == 0:
        if ok==0:
            s=s+" 3"
        else:
            s="3"
        ok = 0
    if v%4==0:
        if ok == 0:
            s = s + " 4"
        else:
            s = "4"
        ok = 0
    if v%5==0:
        if ok == 0:
            s = s + " 5"
        else:
            s = "5"
        ok = 0
    if v%6==0:
        if ok == 0:
            s = s + " 6"
        else:
            s = "6"
        ok = 0
    if ok==1:
        print(-1)
    else:
        print(s)








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值