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;
}