#include<conio.h>
#include<stdlib.h>
//NGUYEN PHUONG DONG_KTMT1_K13_HAUI
void nhapmang(int *a, int n)
{
int i;
for(i=0;i<n;i++)
{
printf("Nhap phan tu thu [%d] ",i); scanf("%d",a+i);
}
}
void xuatmang(int *a, int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%5d",*(a+i));
}
}
int ktnt(int n)
{
int i,dem=0;
for(i=1;i<=n;i++)
if(n%i==0)
dem++;
if(dem==2)
return 1;
return 0;
}
//hien thi so nguyen to
void htnt(int *a, int n)
{
int i;
for(i=0;i<n;i++)
if(ktnt(*(a+i))==1)
printf("%5d",*(a+i));
}
int ktcp(int n)
{
int i;
for(i=1;i<=n;i++)
if(i*i==n)
return 1;
return 0;
}
//chen x vao k
void chen(int *a,int *n,int x, int k)
{
int i;
for(i=*n;i>k;i )
*(a+i)=*(a+i-1);
*(a+k)=x;
Trang 2}
//chen maxnt vao vtdt
int maxnt(int *a, int n)
{
int i,max,dem=0;
for(i=0;i<n;i++)
if(ktnt(*(a+i))==1)
{
max=*(a+i);
dem++;
}
for(i=0;i<n;i++)
if(ktnt(*(a+i))==1 && *(a+i)>max)
{
max=*(a+i);
}
return max;
}
//chen max nguyen to vao vi tri dau tien trong mang
void chen_maxnt_vtdt(int *a, int *n)
{
int k=maxnt(a,*n);
chen(a,n,k,0);
}
//chen so nguyen to dau tien vao vi tri k
int ntdt(int *a, int n)
{
int i;
for(i=0;i<n;i++)
if(ktnt(*(a+i))==1)
{
break;
}
return *(a+i);
}
void chen_ntdt_k(int *a, int *n)
{
int k;
int q=ntdt(a,*n);
chen(a,n,q,k);
}
//chen so nguyen to cuoi cung vao vi tri nho nhat dau tien trong mang int ntcc(int *a, int n)
{
int i;
for(i=n-1;i>0;i )
if(ktnt(*(a+i))==1)
return *(a+i) ;
}
int vtmindt(int *a,int n)
Trang 3int i,min,vt=-1;
min=*a;
for(i=0;i<n;i++)
if(*(a+i)<min)
{
vt=i;
break;
}
return i;
}
void chen3(int *a, int *n)
{
int o=ntcc(a,*n);
int l=vtmindt(a,*n);
chen(a,n,o,l);
}
//chen so chinh Phuong nho nhat vao vi tri cuoi cung int mincp(int *a, int n)
{
int i,min,dem=0;
for(i=0;i<n;i++)
if(ktcp(*(a+i))==1)
{
min=*(a+i);
dem++;
}
for(i=0;i<n;i++)
if(ktcp(*(a+i))==1 && *(a+i)<min)
{
min=*(a+i);
dem++;
}
return min;
if(dem==0)
return 0;
}
int vtcc(int *a, int n)
{
int i,vt=-1;
for(i=n-1;i>0;i )
{
vt=i;
break;
}
return vt;
}
void chen4(int *a, int *n)
{
int z=mincp(a,*n);
int x=vtcc(a,*n);
chen(a,n,z,x);
}
//chen maxnt vao vtcpdt
Trang 4int vtcpdt(int *a, int n)
{
int i,vt=-1;
for(i=0;i<n;i++)
if(ktcp(*(a+i))==1)
{
vt=i;
break;
}
return vt;
}
chen5(int *a, int *n)
{
int z=maxnt(a,*n);
int x=vtcpdt(a,*n);
chen(a,n,z,x);
}
int vtmincpdt(int *a, int n)
{
int i,min,vt=-1;
for(i=0;i<n;i++)
if(ktcp(*(a+i))==1)
{
min=*(a+i);
}
for(i=0;i<n;i++)
if(ktcp(*(a+i))==1 && *(a+i)<min)
{
min=*(a+i);
vt=i;
break;
}
return vt;
}
void chen6(int *a, int *n)
{
int z=maxnt(a,*n);
int x=vtmincpdt(a,*n);
chen(a,n,z,x);
}
//chen min chinh Phuong vao vi tri nguyen to cuoi cung int vtntcc(int *a, int n)
{
int i,vt=-1;
for(i=0;i<n;i++)
if(ktnt(*(a+i))==1)
{
vt=i;
}
return vt;
}
void chen7(int*a, int *n)
{
int z=mincp(a,*n);
Trang 5int x=vtntcc(a,*n);
chen(a,n,z,x);
}
//xoa
void xoa(int *a, int *n,int k)
{
int i;
for(i=k;i<*n-1;i++)
*(a+i)=*(a+i+1);
(*n) ;
}
//xoa am
void xoa1(int *a, int *n)
{
int i;
for(i=0;i<*n;)
if(*(a+i)<0)
xoa(a,n,i);
else i++;
}
//xoa maxnt
void xoa2(int *a, int *n)
{
int i,m;
m=maxnt(a,*n);
for(i=0;i<*n;)
if( *(a+i)==m )
xoa(a,n,i);
else i++;
}
//xoa max chinh phuong chan
int maxcpc(int *a, int n)
{
int i,max;
for(i=0;i<n;i++)
if(ktcp(*(a+i))==1 && *(a+i)%2==0)
max=*(a+i);
for(i=0;i<n;i++)
if(ktcp(*(a+i))==1 && *(a+i)%2==0 && *(a+i)>max) max=*(a+i);
return max;
}
void xoa3(int *a, int *n)
{
int i;
int m=maxcpc(a,*n);
for(i=0;i<*n;)
if(*(a+i)==m)
xoa(a,n,i);
else i++;
}
//vitri minduong
Trang 6int mind(int *a, int n)
{
int i,m,dem=0;
for(i=0;i<n;i++)
if(*(a+i)>0)
{
m=*(a+i);
dem++;
}
for(i=0;i<n;i++)
if(*(a+i)>0 && *(a+i)<m)
{
m=*(a+i);
dem++;
}
return m;
if(dem==0)
return 0;
}
void vtmd(int *a,int n)
{
int i,m;
m=mind(a,n);
for(i=0;i<n;i++)
if(*(a+i)==m)
printf("%5d",i);
}
//vitri min chinh Phuong le dau tien
int mincpledt(int *a, int n)
{
int i,m;
for(i=0;i<n;i++)
if(ktcp(*(a+i))==1 )
{
m=*(a+i);
}
for(i=0;i<n;i++)
if(ktcp(*(a+i))==1 && *(a+i)%2!=0)
{
m=*(a+i);
}
for(i=0;i<n;i++)
if(ktcp(*(a+i))==1 && *(a+i)%2!=0 && *(a+i)<m) {
m=*(a+i);
break;
}
return m;
}
int vt2(int *a, int n)
{
int i,m;
m=mincpledt(a,n);
Trang 7if(*(a+i)==m)
break;
printf("%5d",i);
}
//dem cac phan tu chinh phuong
int demcp(int *a, int n)
{
int i,dem=0;
for(i=0;i<n;i++)
if(ktcp(*(a+i))==1)
{
dem++;
}
return dem;
if(dem==0)
return 0;
}
//tinh trung binh cong cac so nguyen to
int tbnt(int *a, int n)
{
int i,dem=0,tong=0;
for(i=0;i<n;i++)
if(ktnt(*(a+i))==1)
{
tong=tong+ *(a+i);
dem++;
}
return 1.0*tong/dem;
}
//tinh tong cac so chinh phuong
int tong1(int *a, int n)
{
int i,tong=0;
for(i=0;i<n;i++)
if(ktcp(*(a+i))==1)
tong=tong+*(a+i);
return tong;
}
int hoanvi(int *a, int *b)
{
int tg;
tg=*a;
*a=*b;
*b=tg;
}
//sap xep tang dan nguyen to ben trai va giam dan khong nguyen to ben phai void sxnt1(int*a, int n )
{
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
Trang 8if(ktnt(*(a+i))==0 && ktnt(*(a+j))==1 || ktnt(*(a+i))==1
&& ktnt(*(a+j))==1 && *(a+i)>*(a+j) ||ktnt(*(a+i))==0 && ktnt(*(a+j))==0
&& *(a+i)<*(a+j))
hoanvi(a+i,a+j);
}
//sap xep chan tang dan ben trai le giam dan ben phai
void sxchanle(int*a, int n )
{
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(*(a+i)%2!=0 && *(a+j)%2==0 || *(a+i)%2==0 && *(a+j)
%2==0 && *(a+i)>*(a+j) || *(a+i)%2!=0 && *(a+j)%2!=0 && *(a+i)<*(a+j) )
hoanvi(a+i,a+j);
}
//sap xep so am tang dan o dau mang va duong giam gian o cuoi mang
void sxamduong(int *a, int n )
{
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(*(a+i)>0 && *(a+j)<0 || *(a+i)<0 && *(a+j)<0 &&
*(a+i)>*(a+j) || *(a+i)>0 && *(a+j)>0 && *(a+i)<*(a+j) )
hoanvi(a+i,a+j);
}
//tach nguyen to
void tach1(int *a, int n,int *nt, int *nnt, int *knt, int *nknt)
{
int i;
*nnt=*nknt=0;
for(i=0;i<n;i++)
{
if(ktnt(*(a+i))==1) {
*(nt+*nnt)=*(a+i);
(*nnt)++;
} if(ktnt(*(a+i))==0) {
*(knt+*nknt)=*(a+i);
(*nknt)++;
} }
}
//tach am duong
void tach2(int *a, int n, int *am,int *nam,int *duong,int *nduong)
{
int i;
*nam=*nduong=0;
for(i=0;i<n;i++)
{
if(*(a+i)<0) {
Trang 9(*nam)++;
} if(*(a+i)>0) {
*(duong+*nduong)=*(a+i);
(*nduong)++;
} }
} //tach chan le
void tach3(int *a,int n, int *c, int *nc, int *le, int *nle)
{
int i;
*nc=*nle=0;
for(i=0;i<n;i++)
{
if(*(a+i)%2==0) {
*(c+*nc)=*(a+i);
(*nc)++;
} if(*(a+i)%2!=0) {
*(le+*nle)=*(a+i);
(*nle)++;
} }
}
//gop mang
void GopMang(int *a,int na,int *b,int nb,int *c,int *nc) {
int i,n1=0;
for( i=0;i<na;i++)
{
*(c+n1)=*(a+i);n1++;
} for( i=0;i<nb;i++)
{
*(c+n1)=*(b+i);n1++;
} *nc= n1; }
main()
{
int *a, n,
i,k,x,q,l,o,*nt,nnt,*knt,nknt,*am,nam,*duong,nduong,*c,nc,*le,nle;
do
{
printf("Nhap n = ");
scanf("%d",&n);
}while(n<1 || n>50);
a=(int *)malloc(2*n*sizeof(int));
nt=(int *)malloc(2*n*sizeof(int));
knt=(int *)malloc(2*n*sizeof(int));
Trang 10am=(int *)malloc(2*n*sizeof(int));
duong=(int *)malloc(2*n*sizeof(int));
c=(int *)malloc(2*n*sizeof(int));
le=(int *)malloc(2*n*sizeof(int));
nhapmang(a,n);
printf("\nMang vua nhap la\n");;
xuatmang(a,n);/*
do
{
printf("\nNhap vi tri can chen k ");
scanf("%d",&k);
}while(k<0 || k>n);
printf("\nHay nhap vao so chen x ");
scanf("%d",&x);
chen(a,&n,x,k);
printf("\nMAng sau chen x vao k\n");
xuatmang(a,n);
printf("\nMaxnt: %d",maxnt(a,n));
chen_maxnt_vtdt(a,&n);
printf("\nMang sau chen max nt vao vtdt \n"); xuatmang(a,n);
printf("\nSo nguyen to dau tien:%d ",ntdt(a,n)); do
{
printf("Nhap vi tri k: ");
scanf("%d",&k);
}while(k<0 || k>n);
printf("\n\n");
chen_ntdt_k(a,&n);
xuatmang(a,n);
printf("\nSo nguyen to cuoi cung:%d ",ntcc(a,n)); chen3(a,&n);
printf("\nMang sau chen ntc vao vtmndt la\n"); xuatmang(a,n);
printf("\nVi tri cuoi cung = %d",vtcc(a,n)); printf("\nMin cp la %d",mincp(a,n));
chen4(a,&n);
printf("\nMang sau chen mincp vao vtcc\n");
xuatmang(a,n);
if(mincp(a,n)==1)
{
printf("\nMincp: %d",mincp(a,n));
}
else printf("\nKo co min cp");
printf("\nVi tri ntcc = %d",vtntcc(a,n));
chen7(a,&n);
printf("\nMang sau chen mincp vao vtntcc\n"); xuatmang(a,n);
printf("\nMax cpc la %d",maxcpc(a,n));
printf("\nMang sau xoa maxcpc la\n");
xoa3(a,&n);
xuatmang(a,n);
if(mind(a,n)==1)
Trang 11printf("\nMin duong %d",mind(a,n));
printf("\nVTMD");
}
else printf("\nKhong co min duong");
vtmd(a,n); /*
printf("\nMin cp le dt %d",mincpledt(a,n));
printf("\nVT Min cp le dt");
vt2(a,n);
if(demcp(a,n)!=0)
{
printf("\nSo cac phan tu chinh phuong la:%d",demcp(a,n)); }
else
printf("\nkhong co phan tu cp nao ");
printf("\nCac so nt la ");
htnt(a,n);
printf("\nTBNT %d",tbnt(a,n));
printf("\nTONG NT %d",tong1(a,n));
printf("\nMang sau khi tach \n");
tach1(a,n,nt,&nnt,knt,&nknt);
if(nnt!=0)
{
printf("\nMang cac phan tu nt\n");
xuatmang(nt,nnt);
}
else
printf("\nKhong co phan tu nt");
if(nknt!=0)
{
printf("\nMang cac phan tu knt\n");
xuatmang(knt,nknt);
}
else
printf("\nKhong co phan tu knt");
tach2(a,n,am,&nam,duong,&nduong);
if(nam!=0)
{
printf("\nMang pt am\n");
xuatmang(am,nam);
}
else
printf("\n Ko co pt am");
if(nduong!=0)
{
printf("\nMang pt duong");
xuatmang(duong,nduong);
}
else
printf("\nKhong co pt duong\n"); */
printf("\nMang sau tach chan le ");
tach3(a,n,c,&nc,le,&nle);
if(nc!=0)
Trang 12printf("\nMang cac pt chan \n"); xuatmang(c,nc);
}
else
printf("\nKo co pt chan");
if(nle!=0)
{
printf("\nMang cac pt le \n"); xuatmang(le,nle);
}
else
printf("\nKo co pt le");
free(a);
free(nt);
free(knt);
free(am);
free(duong);
free(c);
free(le);
getch();
}