Problem 1075 分解素因子
Accept: 1331 Submit: 2523Time 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 20051 /* 2 水题一枚。 3 这种类型有代表性 4 */ 5 6 #include7 #include 8 9 void Euler(int n)10 {11 int i,k=0;12 for(i=2;i*i<=n;i++)13 if(n%i==0)14 {15 while(n%i==0)16 {17 if(k==0)18 printf("%d",i);19 else20 printf("*%d",i);21 k=1;22 n=n/i;23 }24 }25 if(n!=1)26 {27 if(k==0)28 printf("%d",n);29 else30 printf("*%d",n);31 }32 printf("\n");33 }34 35 int main()36 {37 int n,m;38 while(scanf("%d",&n)>0)39 {40 while(n--)41 {42 scanf("%d",&m);43 Euler(m);44 }45 }46 return 0;47 }