#include <stdio.h>
#include <conio.h>
intktsnt(unsigned longn)
{
unsigned long i;
if (n==0 || n==1) return 0;
for(i=2;i*i<=n;i++) if (n%i==0) return 0;
return 1;
}
intktsht(unsigned longn)
{
unsigned long i,k=0;
for(i=2;i<n;i++) if(n%i==0)
{
k+=i;
if(k>n) return 0;
}
if (n==k) return 1; else return 0;
}
voiddocdl(float a[][50],int*n,int *m)
{
int i,j;
FILE *u;
u=fopen("c:\\input.txt","rt");
fscanf(u,"%d%d",&*n,&*m);
for(i=0;i<*n;i++)
for(j=0;j<*m;j++)
fscanf(u,"%f",&a[i][j]);
fclose(u);
}
voidxemmang1(unsigned longa[],unsigned longn)
{
unsigned long i;
printf("\n");
for(i=0;i<n;i++)
printf(" %lu ",a[i]);
printf("\n");
}
voidxemmang2(float a[][50],intn,int m)
{
int i,j;
printf("\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%10.2f",a[i][j]);
printf("\n");
}
printf("\n");
}
voidxuly(float a[][50],intn,int m,unsignedlong b[],unsignedlong *demnt,unsignedlong c[],unsignedlong *demht)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
if((a[i][j]/1.0)==((unsignedlong)a[i][j]/1)&&a[i][j]>0)
{
if (ktsnt((unsignedlong)a[i][j]))
{
b[*demnt]=(unsignedlong)a[i][j];
*demnt = *demnt + 1;
}
if (ktsht((unsignedlong)a[i][j]))
{
b[*demht]=(unsignedlong)a[i][j];
*demht= *demht + 1;
}
}
}
}
voidmain()
{
floata[50][50]; //mang luu du lieu vao
unsigned long b[2500],demnt=0,// mang luu so nguyen to.
c[2500],demht=0;// mang luu so hoan thien.
intm=0,n=0;
docdl(a,&n,&m);
xemmang2(a,n,m);
xuly(a,n,m,b,&demnt,c,&demht);
printf("\n Mang nguyen to dc tao la");
xemmang1(b,demnt);
printf("\n Mang so hoan thien dc tao la");
xemmang1(c,demht);
printf("\nHoan Tat ");
getch();
}
No comments:
Post a Comment