 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ố thực 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.
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ố thực 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ố thực 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
#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(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);
}
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(float a[][50],int
n,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");
}
void
xuly(float 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((a[i][j]/1.0)==((unsigned
long)a[i][j]/1)&&a[i][j]>0)
         
{
                
if (ktsnt((unsigned
long)a[i][j]))
                
{
                        b[*demnt]=(unsigned
long)a[i][j];
                        *demnt = *demnt + 1;
                
}
                
if (ktsht((unsigned
long)a[i][j]))
                 {
                        b[*demht]=(unsigned
long)a[i][j];
                        *demht= *demht + 1;
                
}
         
}
    }
}
void
main()
{
       float
a[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.
       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