2804 最大最小数质因数
时间限制: 1 s
空间限制: 64000 KB
题目等级 : 黄金 Gold
题目描述 Description
先输入n,n<=20;再依次输入n个不同的数,每个数<=1000000;找出最大数和最小数,并输出最大最小数的质因数,没有质因数则输出0。
输入描述 Input Description
数n,空行,输入n个数,每个数中间空行;
输出描述 Output Description
最大数的质因数,每个数中间空格;
最小数的质因数,每个数中间空格.
样例输入
Sample Input
2
15 6
样例输出
Sample Output
3 5
2 3
数据范围及提示
Data Size & Hint
无
1 #include<iostream> 2 using namespace std; 3 #include<cmath> 4 #include<cstdio> 5 bool pd(int n) 6 { 7 for(int i=2;i<=sqrt(n);++i) 8 if(n%i==0)return false; 9 return true; 10 } 11 void zy(int x) 12 { 13 int t=x; 14 if(x==1||pd(x)) 15 { 16 printf("0 "); 17 return; 18 } 19 for(int i=2;i<=x/2;i++) 20 if(x%i==0&&pd(i)) 21 { 22 printf("%d ",i); 23 t=t/i; 24 if(t==1) break; 25 } 26 printf(" "); 27 } 28 int main() 29 { 30 int n,m,minn=2100000000,maxx=0; 31 cin>>n; 32 for(int i=1;i<=n;++i) 33 { 34 cin>>m; 35 if(m>maxx)maxx=m; 36 if(m<minn)minn=m; 37 } 38 zy(maxx);zy(minn); 39 return 0; 40 }