Code xuất số nguyên tố cuối của hàm luôn output -1

Đề bài: Xuất số nguyên tố cuối của hàm. Nếu ko có xuất -1

EM SAI Ở ĐÂU VẬY Ạ. KHI INPUT XONG NÓ RA -1

#include <iostream>
#include <math.h>
/* kiem tra so nguyen to cuoi cung
   input:                        output: 28
   9
   4 5 -1 2 8 -3 8 7 -1
*/


using namespace std;

void nhapmang(int a[], int n);
int snt(int x);
int nguyentocuoi(int a[], int n);

int main(int argc, char** argv) {
	int a[100],n,x;
	nhapmang(a,n);
	cout<<nguyentocuoi(a,n);
	return 0;
}
void nhapmang(int a[], int n){
	cin>>n;
	for(int i=0; i<n; i++){
		cin>>a[i];
	}
}
int snt(int x){
	if(x<=1) return 0;
	for(int i=2; i<=sqrt(x); i++){
		if(x%i==0){
			return 0;
		}
	}
	return 1;
}
int nguyentocuoi(int a[], int n){
	for(int i=n-1; i>=0; i--){
		if(snt(a[i])==1){
			return a[i];
		}
	}
	return -1;
}
  1. Bạn viết C hay C++?
  2. Hàm nhapmang không thay đổi giá trị của n ở hàm main.
1 Like

thêm tham chiếu &n để thay đổi giá trị n nhé bạn. sửa thành:
void nhapmang(int a[], int &n)
bạn nên cout<<"Nhap n:"; để dễ nhìn khi nhập n nhé

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