uva 10006(幂取模)
来源:互联网 发布:java分布式缓存技术 编辑:程序博客网 时间:2024/06/07 10:01
题意:判断一个数n。如果满足不是素数,并且 (0 < a < n),对任意一个整数a都满足这个式子,就是Carmichael,否则不是。
题解:用幂取模的公式,为了提高效率用分治法。
#include <stdio.h>#include <string.h>#include <math.h>int pow_mod(int a, int n, int m) {if (n == 1)return a;int x = pow_mod(a, n / 2, m);long long ans = (long long)x * x % m;if (n % 2 == 1)ans = ans * a % m;return (int)ans;}int main() {int n;while (scanf("%d", &n) && n) {int flag = 0;for (int i = 2; i <= sqrt(n); i++)if (n % i == 0) {flag = 1;break;}if (!flag) {printf("%d is normal.\n", n);continue;}for (int i = 1; i < n; i++) {if (i != pow_mod(i, n, n)) {flag = 0;break;}}if (!flag)printf("%d is normal.\n", n);elseprintf("The number %d is a Carmichael number.\n", n);}return 0;}
0 0
- uva 10006(幂取模)
- uva 10006
- UVA 10006
- UVA 10006
- UVA 10006
- UVA 10006 - Carmichael Numbers(快速幂取模)
- UVA 10006 - Carmichael Numbers(快速幂取模)
- UVA 10006 Carmichael Numbers(快速幂取模)
- Uva 10006 - Carmichael Numbers【素数+快速幂取模】
- UVa 10006 Carmichael Numbers
- uva 10006 - Carmichael Numbers
- UVA 10006 Carmichael Numbers
- UVa 10006 - Carmichael Numbers
- Uva - 10006 - Carmichael Numbers
- UVa 10006 - Carmichael Numbers
- UVA - 10006 Carmichael Numbers
- UVa 10006 - Carmichael Numbers
- UVa 10006 Carmichael Numbers
- 关于 mysql无法启动 1067 的解决方法
- 协方差矩阵
- 焊盘类型
- 可以听清A short history of nearly everything了
- 关于证书pem的生成
- uva 10006(幂取模)
- JDBC数据源和连接池
- NoSql简介
- java生成随机数
- GDI绘制填充图二
- Wireshark基本介绍和学习TCP三次握手
- UVA 993
- VS2013各版本激活密钥
- linux下Apache简介