51Nod 1116 K进制下的大数【数学】
题目大意传送门 本题目是看教程 思路本文是看教程:O(n)可以解决的2道题 习题的第一题,是比较好的思路。 遇到数相关的题目,凡是提到了
这题目中 所以判断各个位数上加起来能否被p-1整除就好了,若能整除答案就是p。 代码#include<stdio.h>
#include<string>
#include<iostream>
#include<cstring>
using namespace std;
#define max_int(a,b) (a>b)? a:b
char S[100005];
int char2int(char a){
if('A'<=a && a<='Z') return a-'A'+10;
else return a-'0';
}
int main ()
{
scanf("%s",S);
int len = strlen(S);
int ans = 0;
int max_b = 0;
for(int i=0;i<len;i++){
ans += char2int(S[i]);
max_b = max_int(max_b,char2int(S[i]));
}
int flag = 0;
for(int i=max_b+1;i<=36;i++)
{
if(ans%(i-1)==0) {printf("%dn",i);flag =1; break;}
}
if(flag == 0)
printf("No Solutionn");
}
Hit费马小定理! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |