HDU 1164 Eddy's research I
2016-07-13 11:38
429 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1164
Total Submission(s): 8736 Accepted Submission(s): 5383
to ask intelligent you to help him, he asks you to write a program which can do the number to divided into the multiply of prime number factor .
9412
2*2*13*181
思路:简单的算术基本定理,不解释,直接上代码。
附上AC代码:
#include <bits/stdc++.h>
//#pragma comment(linker, "/STACK:102400000, 102400000")
using namespace std;
const int maxn = 1<<8;
const int maxm = 54;
bool is_prime[maxn] = {true, true};
int prime[maxm];
int n;
void filter(){
int cnt = 0;
for (int i=2; i<maxn; ++i)
if (!is_prime[i]){
prime[cnt++] = i;
for (int j=i*i; j<maxn; j+=i)
is_prime[j] = true;
}
// printf("%d\n", cnt);
}
int main(){
#ifdef LOCAL
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
filter();
while (~scanf("%d", &n)){
bool ok = false;
for (int i=0; i<maxm&&prime[i]*prime[i]<=n; ++i)
if (n%prime[i] == 0){
if (ok)
printf("*");
else
ok = true;
printf("%d", prime[i]);
n /= prime[i];
while (n%prime[i] == 0){
printf("*%d", prime[i]);
n /= prime[i];
}
}
if (n > 1){
if (ok)
printf("*");
printf("%d", n);
}
printf("\n");
}
return 0;
}
Eddy's research I
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8736 Accepted Submission(s): 5383
Problem Description
Eddy's interest is very extensive, recently he is interested in prime number. Eddy discover the all number owned can be divided into the multiply of prime number, but he can't write program, so Eddy hasto ask intelligent you to help him, he asks you to write a program which can do the number to divided into the multiply of prime number factor .
Input
The input will contain a number 1 < x<= 65535 per line representing the number of elements of the set.Output
You have to print a line in the output for each entry with the answer to the previous question.Sample Input
119412
Sample Output
112*2*13*181
Author
eddyRecommend
JGShining思路:简单的算术基本定理,不解释,直接上代码。
附上AC代码:
#include <bits/stdc++.h>
//#pragma comment(linker, "/STACK:102400000, 102400000")
using namespace std;
const int maxn = 1<<8;
const int maxm = 54;
bool is_prime[maxn] = {true, true};
int prime[maxm];
int n;
void filter(){
int cnt = 0;
for (int i=2; i<maxn; ++i)
if (!is_prime[i]){
prime[cnt++] = i;
for (int j=i*i; j<maxn; j+=i)
is_prime[j] = true;
}
// printf("%d\n", cnt);
}
int main(){
#ifdef LOCAL
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
filter();
while (~scanf("%d", &n)){
bool ok = false;
for (int i=0; i<maxm&&prime[i]*prime[i]<=n; ++i)
if (n%prime[i] == 0){
if (ok)
printf("*");
else
ok = true;
printf("%d", prime[i]);
n /= prime[i];
while (n%prime[i] == 0){
printf("*%d", prime[i]);
n /= prime[i];
}
}
if (n > 1){
if (ok)
printf("*");
printf("%d", n);
}
printf("\n");
}
return 0;
}
相关文章推荐
- 1.m分解阶乘之和
- 2.几种递推数
- 3.欧拉函数
- 4.快速幂模m算法
- 5.扩展欧几里得&&中国剩余定理
- 6.数论_web
- Project Euler Problem 387 - Harshad Numbers - 深度优先
- 【HDU 5366】The mook jong 详解
- 【HDU 2136】Largest prime factor 详细图解
- 【HDU 1568】Fibonacci 数学公式 详解
- HDU 1568
- HDU1290
- 编程之美2015初赛A
- HDU1568(Fobonacci公式)
- HDU ACM Step 2.2.2 Joseph(约瑟夫环问题)
- HDU 1405
- HDU 1297
- hdu 1205
- hdu 2087
- hdu 1016