Giải bài toán trong đề cương ôn thi học phần Kỹ thuật lập trình ở Học viện Kỹ thuật Mật Mã. Trong bài này, chúng ta phải đi xây dựng chương ...
Giải bài toán trong đề cương ôn thi học phần Kỹ thuật lập trình ở Học viện Kỹ thuật Mật Mã. Trong bài này, chúng ta phải đi xây dựng chương trình bằng ngôn ngữ C cho phép thực hiện nhập vào một số bất kỳ và xuất ra màn hình các số nguyên tố nhỏ hơn số vừa nhập.

Xây dựng chương trình C cho phép nhập vào một số và in ra các số nguyên tố nhỏ hơn số vừa nhập. Chương trình được tổ chức theo menu:
1. Chon 1 de Nhap so nguyen duong
2. Chon 2 de Hien thi cac so nguyen to su dung vong lap
3. Chon 4 de Hien thi cac so nguyen to su dung de quy
4. Chon 3 de Ket thuc
Mời bạn chọn:
Yêu cầu:
- Viết chương trình trên chạy đủ các chức năng
- Cải tiến chương trình trên để tối ưu về hiệu năng
Bài giải [Code]1. Chon 1 de Nhap so nguyen duong
2. Chon 2 de Hien thi cac so nguyen to su dung vong lap
3. Chon 4 de Hien thi cac so nguyen to su dung de quy
4. Chon 3 de Ket thuc
Mời bạn chọn:
Yêu cầu:
- Viết chương trình trên chạy đủ các chức năng
- Cải tiến chương trình trên để tối ưu về hiệu năng
#include<stdio.h>
#include<conio.h>
void nhap(int *n)
{
while(1)
{
printf("\nNhap so nguyen duong: ");
scanf("%d",n);
if(*n<0)
printf("Nhap sai(n duong)");
else
break;
}
}
int nguyen_to(int n)
{
if(n==1)
return 0;
if(n==2)
return 1;
for(int i=2;i<n;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
void in_vonglap(int n)
{
printf("\nCac so nguyen to nho hon %d\n",n);
for(int i=1;i<n;i++)
{
if(nguyen_to(i)==1)
printf("%d ",i);
}
}
void in_dequy(int n)
{
if(n>=3)
{
if(nguyen_to(n-1)==1)
{
printf("%d ",n-1);
in_dequy(n-1);
}
if(nguyen_to(n-1)==0)
in_dequy(n-1);
}
}
main()
{
int c,n;
while(c!=4)
{
printf("\nChon 1: Nhap so nguyen duong");
printf("\nChon 2: Hien thi cac so nguyen to su dung vong lap");
printf("\nChon 3: Hien thi cac so nguyen to su dung de quy");
printf("\nChon 4: Ket thuc");
printf("\nMoi ban chon: ");
scanf("%d",&c);
switch(c)
{
case 1:
nhap(&n);
break;
case 2:
in_vonglap(n);
break;
case 3:
in_dequy(n);
break;
}
}
}
#include<conio.h>
void nhap(int *n)
{
while(1)
{
printf("\nNhap so nguyen duong: ");
scanf("%d",n);
if(*n<0)
printf("Nhap sai(n duong)");
else
break;
}
}
int nguyen_to(int n)
{
if(n==1)
return 0;
if(n==2)
return 1;
for(int i=2;i<n;i++)
{
if(n%i==0)
return 0;
}
return 1;
}
void in_vonglap(int n)
{
printf("\nCac so nguyen to nho hon %d\n",n);
for(int i=1;i<n;i++)
{
if(nguyen_to(i)==1)
printf("%d ",i);
}
}
void in_dequy(int n)
{
if(n>=3)
{
if(nguyen_to(n-1)==1)
{
printf("%d ",n-1);
in_dequy(n-1);
}
if(nguyen_to(n-1)==0)
in_dequy(n-1);
}
}
main()
{
int c,n;
while(c!=4)
{
printf("\nChon 1: Nhap so nguyen duong");
printf("\nChon 2: Hien thi cac so nguyen to su dung vong lap");
printf("\nChon 3: Hien thi cac so nguyen to su dung de quy");
printf("\nChon 4: Ket thuc");
printf("\nMoi ban chon: ");
scanf("%d",&c);
switch(c)
{
case 1:
nhap(&n);
break;
case 2:
in_vonglap(n);
break;
case 3:
in_dequy(n);
break;
}
}
}
------------------------------------
1. Bài giải trên được sưu tầm từ các bạn sinh viên khóa trước đã học tập tại học viện chia sẻ.
2. Để code chạy được bạn nên sử dụng phần mềm CodeBlock
Nếu máy tính bạn nào chưa được cài đặt thì có thể tải bản chạy luôn Tại Đây
COMMENTS