dungnv
» C
» Cho tệp văn bản input.txt dòng đầu chứa 2 số nguyên n và m, tiếp theo là một ma trận các số Nguyên n x m. Các số cách nhau ít nhất một dấu cách trống hoặc ít nhất một dấu xuống dòng. Xây dựng mảng một chiều b gồm các số nguyên tố có mặt trong mảng hai chiều a. Xây dựng mảng một chiều b gồm các số hoàn hảo có mặt trong mảng hai chiều a.
Cho tệp văn bản input.txt dòng đầu chứa 2 số nguyên n và m, tiếp theo là một ma trận các số Nguyên n x m. Các số cách nhau ít nhất một dấu cách trống hoặc ít nhất một dấu xuống dòng. Xây dựng mảng một chiều b gồm các số nguyên tố có mặt trong mảng hai chiều a. Xây dựng mảng một chiều b gồm các số hoàn hảo có mặt trong mảng hai chiều a.
Wednesday, August 27, 2014
Cho tệp văn bản input.txt dòng đầu chứa 2 số nguyên n và m, tiếp theo là một ma trận các số Nguyên n x m. Các số cách nhau ít nhất một dấu cách trống hoặc ít nhất một dấu xuống dòng. Xây dựng mảng một chiều b gồm các số nguyên tố có mặt trong mảng hai chiều a. Xây dựng mảng một chiều b gồm các số hoàn hảo có mặt trong mảng hai chiều a.code
#include <stdio.h>
#include <conio.h>
int
ktsnt(unsigned long
n)
{
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;
}
int
ktsht(unsigned long
n)
{
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;
}
void
docdl(unsigned long
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,"%lu",&a[i][j]);
fclose(u);
}
void
xemmang1(unsigned long
a[],unsigned long
n)
{
unsigned long i;
printf("\n");
for
(i=0;i<n;i++)
printf(" %lu
",a[i]);
printf("\n");
}
void
xemmang2(unsigned long
a[][50],int n,int
m)
{
int i,j;
printf("\n");
for
(i=0;i<n;i++)
{
for
(j=0;j<m;j++)
printf(" %lu
",a[i][j]);
printf("\n");
}
printf("\n");
}
void
xuly(unsigned long
a[][50],int n,int
m,unsigned long
b[],unsigned long
*demnt,unsigned long
c[],unsigned long
*demht)
{
int i,j;
for
(i=0;i<n;i++)
{
for
(j=0;j<m;j++)
{
if (ktsnt(a[i][j]))
{
b[*demnt]=a[i][j];
*demnt = *demnt + 1;
}
if (ktsht(a[i][j]))
{
b[*demht]=a[i][j];
*demht= *demht + 1;
}
}
}
}
void
main()
{
unsigned long a[50][50],
// mang luu du lieu doc tu tep.
b[2500],demnt=0,// mang luu so nguyen to.
c[2500],demht=0;//
mang luu so hoan thien.
int
m=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();
}
All comments [ 0 ]
Your comments