Flask接口签名sign原理与实例代码浅析
1158
2022-09-20
pat 1015(patreon)
1、题目链接
2、题意分析
(1)题意:给出一个数字N,并且给出一个进制radix,请你判断,这个数字N,以及这个数字在进制radix下的反转数是否都为素数?
(2)分析:我们需要三个函数来完成上述的功能(包含main()函数)。第一个是isPrime()函数,用来判断是否为素数;第二个是将当前的数在进制radix中转换成反转数,然后再转换成十进制的数,我称之为reverse()函数;第三个是main()函数,作为程序的入口。
3、关于如何判断是否为素数,这在之前我已经谈及过,这里不再做介绍,直接给出代码如下:
//判断一个数是否为素数
bool isPrime(int total){
if(total < 2){//如果是2,则直接返回true
return true;
}
int i ;
for(i = 2;i <= (int)sqrt(1.0 * total);i++){//素数判断从2开始
if(total % i == 0){
return false;//返回false
}
}
return true;//这里直接的返回包含了total = 2的情况【重要!!】
} 再实现反转函数,如下:
//在当前radix进制反转后,转换成十进制数total
int reverse(int a ,int radix){//a为数,radix为进制
int total = 0 ,i = 0 ,j ;
int array[size];
while(a!=0){//为了得到各位上的数 ---> 需要除以10
array[i++] = a % radix;
a /= radix;
}
for(j = 0;j < i;j++){
total = total * radix + array[j];
}
//printf("反转后 = %d\n",total);
return total;
}
4、源代码
#include
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~