Source1
#include <stdio.h>
#include<string.h>
#include"Header.h"
#define Max 100
void hamnhapmang(int a[Max], int &n)
{
n = 0;
while (n < 0 || n == 0)
{
printf_s("nhap vao so phan tu mang \n");
scanf_s("%d", &n);
if (n < 0 || n == 0)
{
printf("so ban nhap khong dung xin moi nhap lai");
}
};
for (int i = 0; i < n; i++)
{
printf("a[%d]", i);
scanf_s("%d", &a[i]);
}
}
void hamxuatmang(int a[Max], int n)
{
for (int i = 0; i < n; i++)
printf("a[%d]=%d \n", i, a[i]);
}
int kiemtrasochinhphuong(int cp)
{
for (int i = 1; i < cp / 2; i++)
{
if (i*i == cp)
return 1;// neu la 1 thi la so chinh phuong
}
return 0;// neu la 0 thi khong phai so chinh phuong
}
int kiemtrasohoanhao(int hh)
{
int s = 1;
for (int i = 2; i < hh / 2; i++)
{
if (hh % i == 0)
s += i;
}
if (s == hh)
return 1;//neu 1 la so hoan hao
else
return 0;// neu la 0 thi khong phai la so hoan hao
}
int kiemtrasonguyento(int snt)
{
for (int i = 2; i < snt / 2; i++)
{
if (snt % i == 0)
return 0;//bang 0 neu khong phai so nguyen to
}
return 1;//bang 1 neu la so nguyen to
}
int kiemtrasoduongdoixung(int dx)
{
char str[100];
sprintf_s(str, "%d", dx);
int n = strlen(str);
for (int i = 0; i < (n - 1) / 2; i++)
{
if (str[i] = !str[n - i - 1])
{
return 0; // 0 thi khong phai la so doi xung
}
}
return 1;//1 thi la so doi xung
}
int kiemtrasothoayeucau(int yc)//ham kiem tra so thoa man yeu cau
{
if (kiemtrasochinhphuong(yc) == 1 || kiemtrasohoanhao(yc) == 1 || kiemtrasonguyento(yc) == 1 || kiemtrasoduongdoixung(yc) == 1)
{
return 1;//1 thi se dung de xap xep
}
else
return 0;// 0 thi se khong sap xep
}
void hoanvi(int &x, int &y)
{
int temp = 0;
x = temp;
temp = y;
y = temp;
}
void hamsapxep(int a[Max], int n)
{
for (int i = 0; i < n - 1; i++)
{
for (int j = i + 1; j < n; j++)
{
if (kiemtrasothoayeucau(i) == 1 && kiemtrasothoayeucau(j) == 1)
{
if (a[i] > a[j])
{
hoanvi(i, j);
}
}
}
}
}
file Main
#include "Header.h"
#include <stdio.h>
#include <math.h>
#include<string.h>
#include"Source1.cpp"
#define Max 100
int main()
{
int a[Max], n = 0;
hamnhapmang(a, n);
hamsapxep((a,n);
hamxuatmang(a,n);
return 0;
}