PoPoPoPo
09-10-2006, 10:46 AM
Đây là bài các thao tác trên số nguyên:
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
//========================================
void Doicoso(int n,int b)
{
int s[10],o,j,i=0,k=0;
printf("\nNhap mot so he co so 10(Dec) n=");scanf("%d",&n);
printf("\nNhap co so can chuyen sang (b code): b=");scanf("%d",&b);
o=n;
while(n!=0)
{
k=n%b;n=n/b;
if(0<=k && k<=9) s[i++]= 48+k;
else
s[i++]=(65+k-10);
}//end while
printf("\n\nKet qua la:%d(dec) chuyen sang %d(code) la:",o,b);
for(j=i-1;j>=0;j--)
printf("%c",s[j]);
}//end function
//================================================== ============
//Kiem tra 1 so co phai la 1 so nguyen to hay khong?
int NguyenTo(long x)
{
long i,t=0;
for(i=2;i<=sqrt(x);i++)
{
if(x%i==0) { t=0;break;}
else t=1;
}//end for
return(t);
}//end function
//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
void DayNguyenTo(long n)
{
long i;
for(i=2;i<=n;i++)
{
if(NguyenTo(i)) printf("%5ld",i);
}//end for
}//end function
//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\
void Messon(long n)
{
long i;
for(i=2;i<=n;i++)
{
if(NguyenTo(pow(2,i)-1)) printf("%5ld",i);
}
}
//================================================== =======
void so_hoan_thien()
{
unsigned long s,n,i,j;
printf("\nNhap so N = ");
scanf("%ld",&n);
for(i=2;i<=n;i++)
{
s=0;
for(j=1;j<i;j++)
if(i%j==0) s=s+j;
if(s==i)printf("\n%ld",s);
}
//getch();
}
//================================================== ======
void cap_so_huu_nghi()
{
unsigned long s1,s2,n,m,k,i,j;
printf("\nNhap so N = ");
scanf("%ld",&n);
for(i=2;i<=n;i++)
{
s1=0;
for(k=1;k<=i/2+1;k++)
if(i%k==0) s1+=k;
for(j=2;j<=i;j++)
{
s2=0;
for(m=1;m<=j/2+1;m++)
if(j%m==0) s2+=m;
if(s1==j && s2==i) printf("\n (%ld,%ld)",i,j);
}
}
}
//================================================== =======
void paliom()
{
unsigned long n,i,j;
int dem;
char s[12];
dem=0;
printf("\nNhap N : ");
scanf("%ld",&n);
printf("Cac so palidrom nho hon %d la : ",n);
for(i=1;i<=n;i++)
{
ltoa(i,s,10);
strrev(s);
j=atol(s);
if(i==j)
{
printf("\n%d",i);
dem++;
if(dem%20==0)
getch();
}
}
}
//=================================================
void main()
{
long n;
int b;
clrscr();
textmode(C80);
textcolor(YELLOW);
textbackground(BLUE);
window(1,1,80,25);
while(1)
{clrscr();
printf("\n Tap thao t*c voi So Nguyn") ;
printf("\nÞÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ÜÜÜÝ");
printf("\n\n Menu\nÈÍÍÍͼ");
printf("\n1. Doi so N thanh so o he co so bat ki bó16");
printf("\n2. Liet ke ca so Nguyen To ó n");
printf("\n3. Liet ke cac so Messon ó n");
printf("\n4. Liet ke cac so hoan thien ó n");
printf("\n5. Liet ke cac cap so huu nghi ó n");
printf("\n6. Liet ke cac so Paliom ó n");
printf("\nz. Tro ve MENU ch¡nh");
printf("\n\nHay chon chuc nang 1 -> z: ");
char ch1=toupper(getchar());
if(ch1=='Z') break;
switch(ch1)
{
case '1':
printf("\n\n============================\n\n");
printf("DOI 1 SO N TU HE THAP PHAN SANG HE CO SO BAT KI b ó 16\n") ;
Doicoso(n,b);
getch();
break ;
case '2':
printf("\n\n=============================\n\n");
printf("LIET KE CAC SO NGUYEN TO ó N");
printf("\nHay nhap n:");scanf("%ld",&n);
if(n<2) printf("\nKhong the tim ra ket qua!");
else
{
if(n==2)printf("Cac so Nguyen To ó n: 2");
if(n==3||n==4) printf("Cac so nguyen to ó n la: 2 3");
if(n>=5){
printf("Cac so nguyen to ó %ld la:\n2 3",n);
DayNguyenTo(n); }
}
getch();
break;
case '3':
printf("\n\n==============================\n\n");
printf("LIET KE CAC SO MESSON ó N");
printf("\nNhap N=");scanf("%ld",&n);
if(n>30) printf("\n\nSo N qua lon, khong du bo nho de tinh toan!");
else {
printf("\nCac so Messon ó n la:\n2 ");
Messon(n); }
getch();
break;
case '4':
printf("\n\n===========================\n\n");
printf("LIET KE CAC SO HOAN THIEN ó N");
so_hoan_thien();
getch();
break;
case '5':
printf("\n\n==========================\n\n");
printf("LIET KE CAC CAP SO HUU NGHI ó N");
cap_so_huu_nghi();
getch();
break;
case '6':
printf("\n\n=========================\n\n");
printf("LIET KE CAC SO PALIOM ó N");
paliom();
getch();
break;
}
//getch();
}
//================================================== ==============================
}//end main
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
//========================================
void Doicoso(int n,int b)
{
int s[10],o,j,i=0,k=0;
printf("\nNhap mot so he co so 10(Dec) n=");scanf("%d",&n);
printf("\nNhap co so can chuyen sang (b code): b=");scanf("%d",&b);
o=n;
while(n!=0)
{
k=n%b;n=n/b;
if(0<=k && k<=9) s[i++]= 48+k;
else
s[i++]=(65+k-10);
}//end while
printf("\n\nKet qua la:%d(dec) chuyen sang %d(code) la:",o,b);
for(j=i-1;j>=0;j--)
printf("%c",s[j]);
}//end function
//================================================== ============
//Kiem tra 1 so co phai la 1 so nguyen to hay khong?
int NguyenTo(long x)
{
long i,t=0;
for(i=2;i<=sqrt(x);i++)
{
if(x%i==0) { t=0;break;}
else t=1;
}//end for
return(t);
}//end function
//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
void DayNguyenTo(long n)
{
long i;
for(i=2;i<=n;i++)
{
if(NguyenTo(i)) printf("%5ld",i);
}//end for
}//end function
//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\
void Messon(long n)
{
long i;
for(i=2;i<=n;i++)
{
if(NguyenTo(pow(2,i)-1)) printf("%5ld",i);
}
}
//================================================== =======
void so_hoan_thien()
{
unsigned long s,n,i,j;
printf("\nNhap so N = ");
scanf("%ld",&n);
for(i=2;i<=n;i++)
{
s=0;
for(j=1;j<i;j++)
if(i%j==0) s=s+j;
if(s==i)printf("\n%ld",s);
}
//getch();
}
//================================================== ======
void cap_so_huu_nghi()
{
unsigned long s1,s2,n,m,k,i,j;
printf("\nNhap so N = ");
scanf("%ld",&n);
for(i=2;i<=n;i++)
{
s1=0;
for(k=1;k<=i/2+1;k++)
if(i%k==0) s1+=k;
for(j=2;j<=i;j++)
{
s2=0;
for(m=1;m<=j/2+1;m++)
if(j%m==0) s2+=m;
if(s1==j && s2==i) printf("\n (%ld,%ld)",i,j);
}
}
}
//================================================== =======
void paliom()
{
unsigned long n,i,j;
int dem;
char s[12];
dem=0;
printf("\nNhap N : ");
scanf("%ld",&n);
printf("Cac so palidrom nho hon %d la : ",n);
for(i=1;i<=n;i++)
{
ltoa(i,s,10);
strrev(s);
j=atol(s);
if(i==j)
{
printf("\n%d",i);
dem++;
if(dem%20==0)
getch();
}
}
}
//=================================================
void main()
{
long n;
int b;
clrscr();
textmode(C80);
textcolor(YELLOW);
textbackground(BLUE);
window(1,1,80,25);
while(1)
{clrscr();
printf("\n Tap thao t*c voi So Nguyn") ;
printf("\nÞÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ÜÜÜÝ");
printf("\n\n Menu\nÈÍÍÍͼ");
printf("\n1. Doi so N thanh so o he co so bat ki bó16");
printf("\n2. Liet ke ca so Nguyen To ó n");
printf("\n3. Liet ke cac so Messon ó n");
printf("\n4. Liet ke cac so hoan thien ó n");
printf("\n5. Liet ke cac cap so huu nghi ó n");
printf("\n6. Liet ke cac so Paliom ó n");
printf("\nz. Tro ve MENU ch¡nh");
printf("\n\nHay chon chuc nang 1 -> z: ");
char ch1=toupper(getchar());
if(ch1=='Z') break;
switch(ch1)
{
case '1':
printf("\n\n============================\n\n");
printf("DOI 1 SO N TU HE THAP PHAN SANG HE CO SO BAT KI b ó 16\n") ;
Doicoso(n,b);
getch();
break ;
case '2':
printf("\n\n=============================\n\n");
printf("LIET KE CAC SO NGUYEN TO ó N");
printf("\nHay nhap n:");scanf("%ld",&n);
if(n<2) printf("\nKhong the tim ra ket qua!");
else
{
if(n==2)printf("Cac so Nguyen To ó n: 2");
if(n==3||n==4) printf("Cac so nguyen to ó n la: 2 3");
if(n>=5){
printf("Cac so nguyen to ó %ld la:\n2 3",n);
DayNguyenTo(n); }
}
getch();
break;
case '3':
printf("\n\n==============================\n\n");
printf("LIET KE CAC SO MESSON ó N");
printf("\nNhap N=");scanf("%ld",&n);
if(n>30) printf("\n\nSo N qua lon, khong du bo nho de tinh toan!");
else {
printf("\nCac so Messon ó n la:\n2 ");
Messon(n); }
getch();
break;
case '4':
printf("\n\n===========================\n\n");
printf("LIET KE CAC SO HOAN THIEN ó N");
so_hoan_thien();
getch();
break;
case '5':
printf("\n\n==========================\n\n");
printf("LIET KE CAC CAP SO HUU NGHI ó N");
cap_so_huu_nghi();
getch();
break;
case '6':
printf("\n\n=========================\n\n");
printf("LIET KE CAC SO PALIOM ó N");
paliom();
getch();
break;
}
//getch();
}
//================================================== ==============================
}//end main