FZU OJ 1075 :分解素因子

Problem 1075 分解素因子

Accept: 2161    Submit: 4126
Time Limit: 1000 mSec    Memory Limit : 32768 KB

 Problem Description

假设x是一个正整数,它的值不超过65535(即1

 Input

输入的第一行含一个正整数k (1<=k<=10),表示测试例的个数,后面紧接着k行,每行对应一个测试例,包含一个正整数x。

 Output

每个测试例对应一行输出,输出x的素数乘积表示式,式中的素数从小到大排列,两个素数之间用“*”表示乘法。

 Sample Input

2
11
9828

 Sample Output

11
2*2*3*3*3*7*13
先打表。再用一个数组来储存素数,最后找素数里面能够整除k的素数,把这些素数储存到另一个数组中。
#include
#include
#include
#include
#define ll long long
using namespace std;
const int maxn=1e6+10;
int a[maxn];
int b[maxn];
int c[maxn];
int main()
{
	int k,x;
	int i,j,K;
	memset(a,0,sizeof(a));
	//打表 
	a[0]=a[1]=1;
	for(i=2;i<=65540;i++)
	{
		if(a[i]==0)
		{
			for(j=2;j*i<=65540;j++)
			{
				a[i*j]=1;
			}
		}
	}
	//将素数储存到数组b中 
	int p=0;
	for(j=0;j<=65540;j++)
	{
		if(a[j]==0) b[p++]=j;
	}
	scanf("%d",&k);
	while(k--)
	{
		memset(c,0,sizeof(c));
		int sum=0;
		scanf("%d",&x);
		int ss;
		for(ss=0;ss

你可能感兴趣的:(素数和打表)