C Program
#include<stdio.h>
#include<math.h>
int top=-1;
/* Mandatory */
int read_int()
{
int x;
scanf("%d",&x);
return x;
}
/* Mandatory */
void push(int stack[],int data)
{
top++;
stack[top]=data;
}
int isPrime(int n)
{
if(n<2) return 0;
for(int i=2;i*i<=n;i++)
if(n%i==0) return 0;
return 1;
}
int main()
{
int n=read_int();
int queue[1000000], stack[1000000];
int qr=0;
for(int i=0;i<n;i++)
{
int x=read_int();
if(isPrime(x))
queue[qr++]=x;
else
push(stack,x);
}
for(int i=0;i<qr;i++)
printf("%d ",queue[i]);
printf("\n");
for(int i=top;i>=0;i--)
printf("%d ",stack[i]);
return 0;
}
0 Comments