UVA 10006 判断一个数是否为一个卡米切尔数
2011-04-22 14:07
267 查看
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=12&problem=947&mosmsg=Submission+received+with+ID+8768565
这个题目应该是数论中比较入门的题目了
因为数据量并不是很大,所以可以直接暴力的打出素数表,然后进行判断
不过在取mod的时候可以把线性的乘法改成二分取mod,提升速度,然后就是变量类型可以改成long
int是会WA的,其他的就没有啥好主意的了。
我的代码:
这个题目应该是数论中比较入门的题目了
因为数据量并不是很大,所以可以直接暴力的打出素数表,然后进行判断
不过在取mod的时候可以把线性的乘法改成二分取mod,提升速度,然后就是变量类型可以改成long
int是会WA的,其他的就没有啥好主意的了。
我的代码:
#include<stdio.h> #include<math.h> #include<string.h> long prime[65005]; long num; bool flag[65005]; void init() { unsigned long i,j; memset(flag,0,sizeof(flag)); flag[1]=true; for(i=2;i<65005;i++) { if(!flag[i]) { prime[num++]=i; for(j=i*i;j<=65005;j=j+i) flag[j]=true; } } } long power(long a,long n,long m) { long t; if(n==0) return 1%m; if(n==1) return a%m; t=power(a,n/2,m); t=((t%m)*(t%m))%m; if((n&1)==1) t=((t%m)*(a%m))%m; return t; } bool judge(long n) { long i; for(i=2;i<=n-1;i++) if(power(i,n,n)!=i) return false; return true; } int main() { long n; init(); while(scanf("%ld",&n)!=EOF) { if(n==0) break; if(!flag ) { printf("%ld is normal./n",n); continue; } else { if(judge(n)) printf("The number %ld is a Carmichael number./n",n); else printf("%ld is normal./n",n); } } return 0; }
相关文章推荐
- Havel-Hakimi定理(判断一个序列是否可图) UVA 10720
- 紫书章七例五 Krypton Factor UVA - 129(dfs)判断一个字符串中是否包含两个相邻子串
- 紫书章七例五 Krypton Factor UVA - 129(dfs)判断一个字符串中是否包含两个相邻子串
- 紫书章七例五 Krypton Factor UVA - 129(dfs)判断一个字符串中是否包含两个相邻子串
- 紫书章七例五 Krypton Factor UVA - 129(dfs)判断一个字符串中是否包含两个相邻子串
- UVALive 6257 Chemist's vows 判断一个字符串是否由n中的某些字符串组成 dp
- UVA 10004判断一个图是否为二分图
- uva 10004 Bicoloring(判断一个图是否是二分图)
- 紫书章七例五 Krypton Factor UVA - 129(dfs)判断一个字符串中是否包含两个相邻子串
- 紫书章七例五 Krypton Factor UVA - 129(dfs)判断一个字符串中是否包含两个相邻子串
- 紫书章七例五 Krypton Factor UVA - 129(dfs)判断一个字符串中是否包含两个相邻子串
- 紫书章七例五 Krypton Factor UVA - 129(dfs)判断一个字符串中是否包含两个相邻子串
- 判断一个dataset的数据是否包含另一个dataset的数据
- 判断一个字符串中是否含有汉字
- 如何在前端用js判断一个元素在一个数组中是否存在
- 如何判断一个点是否在多边形内部ne?
- js判断一个对象是否空
- 一个很好判断是否数字的现成的函数:isdigit()
- Android 判断一个服务是否运行
- Oracle 中如何判断一个字符串是否为数字