HDU 1405 The Last Practice 数学水题
2014-01-20 22:12
260 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1405
题目大意:
给你一个数,让你分解素因子,输出它的各次幂。
如60 输出:2 2 3 1 5 1 (60=2^2*3^1*5^1)
思路:
先筛选出素数,然后除以每个素数,看看有几个。。
注意格式坑爹,每次幂之后都要有空格。PE了
还有就是是以负数结束输入。我看样例直接以为是-1,WA了。。。
再次就是HDU晚上作死,一直都是Queuing状态。
题目大意:
给你一个数,让你分解素因子,输出它的各次幂。
如60 输出:2 2 3 1 5 1 (60=2^2*3^1*5^1)
思路:
先筛选出素数,然后除以每个素数,看看有几个。。
注意格式坑爹,每次幂之后都要有空格。PE了
还有就是是以负数结束输入。我看样例直接以为是-1,WA了。。。
再次就是HDU晚上作死,一直都是Queuing状态。
#include<cstdio> #include<cstring> const int MAXN=65536+10; bool primer[MAXN]; int p[MAXN]; int main() { for(int i=2;i*i<MAXN;i++) if(!primer[i]) for(int j=i;j*i<MAXN;j++) primer[j*i]=true; int len=0; for(int i=2;i<MAXN;i++) if(!primer[i]) p[len++]=i; int n,kase=1; while(~scanf("%d",&n),n>0) { if(kase!=1) printf("\n"); printf("Case %d.\n",kase++); int cnt[MAXN]={0}; for(int i=0;i<len;i++) { while(n % p[i]==0) { cnt[i]++; n/=p[i]; } if(n==1) break; } for(int i=0;i<len;i++) { if(cnt[i]!=0) printf("%d %d ",p[i],cnt[i]); } printf("\n"); } return 0; }
相关文章推荐
- HDU 1405 The Last Practice 数学水题
- HDU 3078 Network LCA水题
- hdu 1062 Text Reverse 字符串处理。简单水题
- HDOJ 2109 Fighting for HDU(水题)
- HDU 1686 Oulipo(KMP水题)java实现
- 【HDU 5532 Almost Sorted Array】水题,模拟
- HDU 2212 DFS 水题
- HDU 1004 Let the Balloon Rise【水题】
- HDU 水题 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016
- hdu 1331 找规律 超级水题
- HDU 4287 Intelligent IME (map水题或字典树+DFS)
- HDU水题1090 ( A+B for Input-Output Practice (II) )
- hdu 1117 Booklet Printing(模拟 分类 水题)
- HDU 1159 Common Subsequence DP 又一道水题
- HDU 5655 CA Loves Stick 水题
- hdu 1412 {A} + {B} (水题但要注意输出格式)
- HDU 4022 Bombing(基本算法-水题)
- HDU 4802 GPA(水题)
- HDU--杭电--1195--Open the Lock--深搜--忘记说句话装逼了,都是什么双向广搜,不知道怎么想的,直接就是一个深搜的水题好不好?
- hdu 2553:N皇后问题(DFS遍历,水题)