Kiểm tra số nguyên dương nhập vào có phải số đối xứng hay không

Em mới học C . Mấy anh giúp em bài này với:
Nhập số nguyên dương n (n>0)
hãy cho biết:

a. Có phải là số đối xứng ? Vd: 121 , 12321, …
b. CÓ phải số chính phương? Vd: 4,9,16,…
c. Có phải số nguyên tố? VD: 2,3,5,7
d. CHữ số lớn nhất và nhỏ nhất?
e. Các chữ số tăng dần hay giảm dần?

Nick này em mượn của bạn . Do bạn em nó bận rồi :frowning:

giúp code hay thuật toán?

1 Like

Code luôn bác nhé :smiley:

:smile: :smile: :smile: lười viết code lắm, mình nghĩ bạn nên tự viết xong lỗi thì post lên đây.

Phần a bạn tìm ra số đảo ngược lại của số này trước rồi đem so sánh vs số ban đầu, phần b,c dễ rồi
Phần d e dựa vào a làm

Đề yêu cầu nhập Số nguyên dương mà bạn ?
Sao lại chuyển qua xâu để xử lý vậy

đâu ai cấm đâu. lúc trước mình cũng từng như này =))

Chuyển đổi số nguyên sang chuỗi bạn nên dùng như ví dụ này:

int number = 12345; 
char Chuoi[25]; 
itoa(number, Chuoi, 10); //chuyển đổi number sang chuỗi theo cơ số 10 
Kết quả Chuoi= "12345";
itoa(number, Chuoi, 2); //chuyển đổi number sang chuỗi theo cơsố2 
Kết quả Chuoi= "11000000111001";

Mới học thì cách bạn chỉ cách nào đơn giản cho bạn ý thôi.
Cũng như mình và các bạn ngày xưa học vậy. Chỉ như vậy càng làm khó bạn ý.
Mục đích của bài này có lẽ chỉ làm quen với vòng lặp thôi. Bạn dùng vòng lặp để giải tất các các câu nhé.

1 Like
#include <stdio.h>
int main()
{
	int n;
	printf("Nhap n = ");
	scanf("%d", &n);

	int SoDaoNguoc = 0;
	while(n>0)
	{
		SoDaoNguoc = SoDaoNguoc*10 + n%10;
		n /= 10; // tương tự n = n/10
	}
	printf("So dao nguoc la: %d\n", SoDaoNguoc);
}

code hồi xưa. cơ bản nhất rồi :))

3 Likes

http://codepad.org/HE2tMzoJ mình đã cố code cho cơ bản và dễ hiểu :v

bạn cho mình hỏi dòng n/=10 có ý nghĩ gì vậy, tại sao phải có dòng đó mình k hiểu ? Thanks bạn

Sau khi lấy đc chữ số ở cuối rồi thì loại bỏ đi (n /= 10) để lấy số tiếp theo

3 Likes

giải thích giúp mình phần này với ạ

Cho em xin lưu đồ bài đó với ạ

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?