Kiểm tra số nguyên, số nguyên tố, số chính phương

hello Mọi Người,
Cho em hỏi là: “Em muốn kiểm tra 1 số có phải số nguyên, số nguyên tố và số chính phương nhưng em đã hoàn thành được số nguyên và số chính phương còn số nguyên tố thì báo lỗi do em khai báo biến bằng float nếu khai báo bằng int thì được nhưng khai bằng int thì bài chưa được hợp lí ở phần số nguyên.”
Ai có cách giải nào giúp em không ạ?
Em cảm ơn.

#include <stdio.h>
int main(){
        float x,i,check,kiemTra=0;
	printf("*Nhap X: ");
	scanf("%f",&x);
	if(x==(int)x){       //DkSoNguyen
		printf("*%f La So Nguyen\n",x);  //InSoNguyen
		for(i=1;i<=x;i++){
		    if(x%i==0){   //DkSoNguyenTo
			    check++;
	        }
		    if(i*i==x){   //DkSoChinhPhuong
			    kiemTra=1;
	        }	
	    }
	    if(check==2){
		    printf("*%f La So Nguyen To\n",x); //InSoNguyenTo
	    }else{
		    printf("*%f Khong La So Nguyen To\n",x);
	    }
	    if(kiemTra==1){
		    printf("*%f La So Chinh Phuong\n",x); //InSoChinhPhuong
	    }else{
		    printf("*%f Khong La So Chinh Phuong\n",x);
	    }
	}else{
		printf("*%f Khong La So Nguyen\n",x);
		printf("%f Khong La So Nguyen To\n",x);
		printf("%f Khong La  So Chinh Phuong\n",x);
	}
return 0;
}
1 Like

Qua đây đọc,post cuối

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