Bước 1 : Phân tích bài toán :
InPut : số nguyên dương n .
OutPut : các ước số của n .
Bước 2 : Đưa ra thuật toán tối ưu : đương nhiên có thể có nhiều cách -> lựa chọn một cách tốt nhất về
thời gian .
Cho một biến đếm i chạy từ 1 đến n, nếu n chia hết cho các i nào thì in i đó ra ( cũng chính là các ước số của n )
Nên có một biến đếm để đếm số các ước số của số nguyên dương n .
Sau đây là một CT tham khảo theo ngôn ngữ C :
#include<stdio.h>
#include<conio.h>
long US ( long );
main()
{
int n ;
char kiemtra; //Hoac la " int kiemtra" cung duoc
do{
printf ( "Nhap so nguyen duong n :=" ) ;
scanf ( "%ld",&n ) ;
US ( n );
printf ( "Co tiep tuc khong ?(C/K) :" ) ;
kiemtra = getche ( ) ;
printf ( "\n\n" ) ;
}while ( kiemtra == 'c' );
getch( );
}
long US ( long n )
{
long i , dem ;
printf ( "Cac uoc so cua %ld la :\n", n ) ;
for ( i = n ; i != 0 ; i-- )
{
if ( n % i == 0 )
{
dem ++;
printf ( "%5ld", i );
}
}
printf ( "\nSo %ld co %ld uoc so\n\n", n, dem ) ;
}
Không có nhận xét nào:
Đăng nhận xét