Eddy's research I
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5612 Accepted Submission(s): 3354
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 has 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 .
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
11 9412
Sample Output
11 2*2*13*181
Author
eddy
#include<iostream>
#include<cstring>
#include<cstdio>
#include<ctime>
#include<algorithm>
using namespace std;
#define M 100000
bool visit[M];
int prime[M];
void table()
{
memset(visit,true,sizeof(visit));
int num = 0;
for (int i = 2; i <= M; ++i)
{
if (visit[i] == true)
{
num++;
prime[num] = i;
}
for (int j = 1; ((j <= num) && (i * prime[j] <= M)); ++j)
{
visit[i * prime[j]] = false;
if (i % prime[j] == 0) break; //点睛之笔
}
}
}
int main()
{
memset(prime, 0, sizeof(prime));
int a[M];
int count = 0;
table();
int i,j,k,n;
//for(int i=1;i<7000 ;i++)
while(scanf("%d",&n)!=EOF)
{
j=0;
for(i=1;i<=70000;)
{
if(n==prime[i])
{
a[j]=prime[i];
break;
}
else
{
if(n%prime[i]==0)
{
n=n/prime[i];
a[j]=prime[i];
j++;
}
else
{
i++;
}
}
}
// printf("jjjjj%d\n",j);
if(j==0)
{
printf("%d\n",a[j]);
}
else
{
for(k=0;k<j;k++)
printf("%d*",a[k]);
printf("%d\n",a[j]);
}
}
return 0;
}
Recommend
本文深入探讨了程序设计方法、算法、数据结构等核心概念,包括面向对象编程、函数式编程、逻辑编程、设计模式等内容,同时涉及排序算法、动态规划、哈希算法等经典算法。此外,还涵盖了数据库理论、代码管理工具、版本控制等方面的知识,为开发者提供全面的技术指导。
298

被折叠的 条评论
为什么被折叠?



