Problem 1075 分解素因子
Accept: 1331 Submit: 2523
Time Limit: 1000 mSec Memory Limit : 32768 KB
Problem Description
假设x是一个正整数,它的值不超过65535(即1<x<=65535),请编写一个程序,将x分解为若干个素数的乘积。
Input
输入的第一行含一个正整数k (1<=k<=10),表示测试例的个数,后面紧接着k行,每行对应一个测试例,包含一个正整数x。
Output
每个测试例对应一行输出,输出x的素数乘积表示式,式中的素数从小到大排列,两个素数之间用“*”表示乘法。
Sample Input
2 11 9828
Sample Output
11 2*2*3*3*3*7*13
Source
FJNU Preliminary 2005
/*
水题一枚。
这种类型有代表性
*/ #include<stdio.h>
#include<stdlib.h> void Euler(int n)
{
int i,k=;
for(i=;i*i<=n;i++)
if(n%i==)
{
while(n%i==)
{
if(k==)
printf("%d",i);
else
printf("*%d",i);
k=;
n=n/i;
}
}
if(n!=)
{
if(k==)
printf("%d",n);
else
printf("*%d",n);
}
printf("\n");
} int main()
{
int n,m;
while(scanf("%d",&n)>)
{
while(n--)
{
scanf("%d",&m);
Euler(m);
}
}
return ;
}