用辗转相除法求两个整数的最小公倍数
C语言程序设计(双语) 第10讲 习题课
第10讲 习题课
例1、用辗转相除法求两个整数的最小公倍数。
#include
#include
#include
void main(void)
{
int m,n,r,p;
clrscr();
while(1)
{
gotoxy(10,4);
printf("m,n=? ");
scanf("%d %d",&m,&n);
if (m && n) break;
gotoxy(10,6);
printf(“The datas are invalid, press any key to input again.”);
getch();
gotoxy(10,4);
printf(“%30s”,””);
gotoxy(10,6);
printf(“%50s”,””);
}
p=m*n;
r=m%n;
while(r)
{
m=n;
n=r;
r=m%n;
}
p/=n;
printf("LCM=%d",p);
getch();
}
例2 求出离正整数n最近的质数。例如,当n=8时,所求质数是7,而当n=10时,其值为11。
#include
#include
#include
#include
10-1/4
C语言程序设计(双语) 第10讲 习题课 void main(void)
{
int i,j,m,n,n1,n2;
while(1)
{
clrscr();
scanf("%d",&n);
if (n>0) break;
printf("You input invalid data. Press any key to input again ,please!");
getch();
}
n1=0;
for(j=n-1;j>1;j--)
{
m=sqrt(j);
for(i=2;im) { n1=j;break; }
}
for(j=n+1;;j++)
{
m=sqrt(j);
for(i=2;im) { n2=j;break; }
}
if (!n1 || n-n1!=n2-n)
{
if (!n1) m=n2;
else m=n-n1
#include
#include
10-2/4
C语言程序设计(双语) 第10讲 习题课 void main(void)
{ int c,p,x,y;
long n;
clrscr();
printf("n=? ");
scanf("%ld",&n);
if (n<1) exit(0);
c=0;
while(n)
{
p=n%10;
c++;
x=80-6*c;
y=4;
gotoxy(x,y);
switch(p)
{
case 0:
printf("zero");
break;
case 1:
printf("one");
break;
case 2:
printf("two");
break;
case 3:
printf("three");
break;
case 4:
printf("four");
break;
case 5:
printf("five");
break;
case 6:
printf("six");
break;
case 7:
printf("seven");
break;
case 8:
printf("eight");
break;
10-3/4
C语言程序设计(双语) 第10讲 习题课
case 9:
printf("nine");
break;
}
n/=10;
}
getch();
}
作业:
1、打印如下图形:
*
***
*****
*******
*****
***
*
10-4/4