题目
思路
这道题直接排序之后暴力乱搞。
代码
#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
int n,a[10010],c[10010],maxn;
int ys[10010][1010];
int main()
{
scanf("%d",&n);
for(int i=1; i<=n; i++)
{
scanf("%d",&a[i]);
maxn=max(a[i],maxn);
}
sort(a+1,a+1+n);
for(int i=1; i<=n; i++)
{
int jl=0;
for(int j=2; j<=a[i]/2; j++)
if(a[i]%j==0)
{
jl=j;
break;
}
if(jl==0)
jl=a[i];
ys[jl][++c[jl]]=a[i];
}
for(int i=1; i<=maxn; i++)
if(c[i]!=0)
{
printf("%d ",i);
for(int j=1; j<=c[i]; j++)
printf("%d ",ys[i][j]);
printf("\n");
}
return 0;
}