HDU 1405 The Last Practice
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 1405 The Last Practice相关的知识,希望对你有一定的参考价值。
The Last Practice
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 9226 Accepted Submission(s): 1960
Problem Description
Tomorrow is contest day, Are you all ready?
We have been training for 45 days, and all guys must be tired.But , you are so lucky comparing with many excellent boys who have no chance to attend the Province-Final.
Now, your task is relaxing yourself and making the last practice. I guess that at least there are 2 problems which are easier than this problem.
what does this problem describe?
Give you a positive integer, please split it to some prime numbers, and you can got it through sample input and sample output.
We have been training for 45 days, and all guys must be tired.But , you are so lucky comparing with many excellent boys who have no chance to attend the Province-Final.
Now, your task is relaxing yourself and making the last practice. I guess that at least there are 2 problems which are easier than this problem.
what does this problem describe?
Give you a positive integer, please split it to some prime numbers, and you can got it through sample input and sample output.
Input
Input
file contains multiple test case, each case consists of a positive
integer n(1<n<65536), one per line. a negative terminates the
input, and it should not to be processed.
Output
For
each test case you should output its factor as sample output (prime
factor must come forth ascending ), there is a blank line between
outputs.
Sample Input
60
12
-1
Sample Output
Case 1.
2 2 3 1 5 1
Case 2.
2 2 3 1
Hint
60=2^2*3^1*5^1
Author
lcy
Source
解析:给定一个正整数,将它分解为素数的乘积。
1 #include <cstdio> 2 3 int main() 4 { 5 int n,cn = 0; 6 while(scanf("%d",&n), n>0){ 7 if(cn != 0) 8 printf("\n"); 9 printf("Case %d.\n",++cn); 10 for(int i = 2; i*i <= n; ++i){ 11 int cnt = 0; 12 while(n%i == 0){ 13 ++cnt; 14 n /= i; 15 } 16 if(cnt != 0) 17 printf("%d %d ",i,cnt); 18 } 19 if(n>1) 20 printf("%d 1 ",n); 21 printf("\n"); 22 } 23 return 0; 24 }
以上是关于HDU 1405 The Last Practice的主要内容,如果未能解决你的问题,请参考以下文章
The last packet successfully received from the server was 20,519 milliseconds ago. The last packet
HDU - 2896 病毒侵袭 (AC自动机,last优化)