#include<bits/stdc++.h>
//Phan Thanh Nhàn
using namespace std;
#define MAXN 100007
int n,a[MAXN];
int C[MAXN];
int B=0;
void c3a(const char* input){
FILE *f1=fopen(input,"r");
if (!f1) return;
fscanf(f1,"%d",&n);
for(int i=0;i<n;i++)
fscanf(f1,"%d",&a[i]);
fclose(f1);
}
int prime(int n){
if(n<2) return 0;
for(int i=2;i<=sqrt(n);i++){
if(n%i==0) return 0;
}
return 1;
}
void c3b(const char* input){
FILE *f1=fopen(input,"r");
if (!f1) return;
fscanf(f1,"%d",&n);
for(int i=0;i<n;i++){
fscanf(f1,"%d",&a[i]);
if(prime(a[i]))
B++;
}
fclose(f1);
}
void c3c(const char* input){
FILE *f1=fopen(input,"r");
if (!f1) return;
fscanf(f1,"%d",&n);
for(int i=0;i<n;i++)
fscanf(f1,"%d",&a[i]);
for(int i=0;i<n;i++)
C[i]=a[i];
//làm qua trung gian. Để không ảnh hưởng a[n] ban đầu
//nhưng đối với bài này thì k có cx được
//chỉ cần xóa cái copy trên và fix ở dưới là oke
for(int i=0;i<=n-2;i++)
for(int j=0;j<=n-2-i;j++)
if(C[j]>C[j+1])
swap(C[j],C[j+1]);
fclose(f1);
}
void c3d(const char* input,const char* output){
FILE *f1=fopen(input,"r"),*f2=fopen(output,"w");
if (!f1||!f2) return;
fprintf(f2,"%d \n",B);
fscanf(f1,"%d",&n);
for(int i=0;i<n;i++)
fprintf(f2,"%d ",C[i]);
fclose(f1);fclose(f2);
}
int main(){
const char* input="num_input.txt";
const char* output="num_output.txt";
c3a(input);
c3b(input);
c3c(input);
c3d(input,output);
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KLy9QaGFuIFRoYW5oIE5ow6BuIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIE1BWE4gMTAwMDA3CmludCBuLGFbTUFYTl07CmludCBDW01BWE5dOwkJCmludCBCPTA7CnZvaWQgYzNhKGNvbnN0IGNoYXIqIGlucHV0KXsKCUZJTEUgKmYxPWZvcGVuKGlucHV0LCJyIik7CglpZiAoIWYxKSAJcmV0dXJuOwoJZnNjYW5mKGYxLCIlZCIsJm4pOwoJZm9yKGludCBpPTA7aTxuO2krKykKCQlmc2NhbmYoZjEsIiVkIiwmYVtpXSk7CglmY2xvc2UoZjEpOyAKfQppbnQgcHJpbWUoaW50IG4pewoJaWYobjwyKQlyZXR1cm4gMDsKCWZvcihpbnQgaT0yO2k8PXNxcnQobik7aSsrKXsKCQlpZihuJWk9PTApCXJldHVybiAwOwoJfQoJcmV0dXJuIDE7Cn0Kdm9pZCBjM2IoY29uc3QgY2hhciogaW5wdXQpewoJRklMRSAqZjE9Zm9wZW4oaW5wdXQsInIiKTsKCWlmICghZjEpIAlyZXR1cm47CgkKCWZzY2FuZihmMSwiJWQiLCZuKTsKCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWZzY2FuZihmMSwiJWQiLCZhW2ldKTsKCQlpZihwcmltZShhW2ldKSkKCQkJQisrOwoJfQoJCglmY2xvc2UoZjEpOwp9CnZvaWQgYzNjKGNvbnN0IGNoYXIqIGlucHV0KXsKCUZJTEUgKmYxPWZvcGVuKGlucHV0LCJyIik7CglpZiAoIWYxKSAJcmV0dXJuOwoJZnNjYW5mKGYxLCIlZCIsJm4pOwoJZm9yKGludCBpPTA7aTxuO2krKykKCQlmc2NhbmYoZjEsIiVkIiwmYVtpXSk7CgoKCWZvcihpbnQgaT0wO2k8bjtpKyspCgkJQ1tpXT1hW2ldOwoJLy9sw6BtIHF1YSB0cnVuZyBnaWFuLiDEkOG7gyBraMO0bmcg4bqjbmggaMaw4bufbmcgYVtuXSBiYW4gxJHhuqd1CgkvL25oxrBuZyDEkeG7kWkgduG7m2kgYsOgaSBuw6B5IHRow6wgayBjw7MgY3ggxJHGsOG7o2MKCS8vY2jhu4kgY+G6p24geMOzYSBjw6FpIGNvcHkgdHLDqm4gdsOgIGZpeCDhu58gZMaw4bubaSBsw6Agb2tlIAoJZm9yKGludCBpPTA7aTw9bi0yO2krKykKCQlmb3IoaW50IGo9MDtqPD1uLTItaTtqKyspCgkJCWlmKENbal0+Q1tqKzFdKQoJCQkJc3dhcChDW2pdLENbaisxXSk7CgkKCWZjbG9zZShmMSk7Cn0Kdm9pZCBjM2QoY29uc3QgY2hhciogaW5wdXQsY29uc3QgY2hhciogb3V0cHV0KXsKCUZJTEUgKmYxPWZvcGVuKGlucHV0LCJyIiksKmYyPWZvcGVuKG91dHB1dCwidyIpOwoJaWYgKCFmMXx8IWYyKSAJcmV0dXJuOwoJZnByaW50ZihmMiwiJWQgXG4iLEIpOwoJZnNjYW5mKGYxLCIlZCIsJm4pOwoJZm9yKGludCBpPTA7aTxuO2krKykKCQlmcHJpbnRmKGYyLCIlZCAiLENbaV0pOwoJCglmY2xvc2UoZjEpO2ZjbG9zZShmMik7Cn0KaW50IG1haW4oKXsKCWNvbnN0IGNoYXIqIGlucHV0PSJudW1faW5wdXQudHh0IjsKCWNvbnN0IGNoYXIqIG91dHB1dD0ibnVtX291dHB1dC50eHQiOwoJYzNhKGlucHV0KTsKCWMzYihpbnB1dCk7CgljM2MoaW5wdXQpOwoJYzNkKGlucHV0LG91dHB1dCk7CgkKfQo=