01/10/2018, 08:43
Câu hỏi về Hàm, gọi hàm
Em có viết 1 đoạn code để tính tổng các SNT trước n ạ.
#include <iostream>
using namespace std;
int test(int n)
{
for (int i = 2; i * i < n; i++)
{
if (n% i == 0)
{
return 0;
}
else return 1;
}
}
int main()
{
int n;
cin >> n;
int tong = 0;
for (int i = 2; i < n; i++)
{
if (test(i))
tong += i;
}
cout << tong;
}
Ở hàm main, nếu em ghi if (test(i) thì kết quả đúng còn if (test(i) == 1) thì kết quả sai ạ. em chưa hiểu chỗ này lắm.
Bài liên quan
Bạn nên đọc qua cuốn phong cách lập trình để xem cách viết code sao cho hợp lý nhé.
Hàm này dùng để tính số nguyên tố hả b? Nếu là số nguyên tố thì bạn xem lại cách viết hàm này nhé !
Hàm test mà anh ? ở dưới em mới tính ạ.
Hàm test dùng đề làm gì vậy?
Để test xem số i chạy từ 2 đến n thì số i đó có phải là SNT không. Nếu phải ko trả về 0 còn phải trả về 1 ạ.
Vậy bạn thử vào hàm Main chạy thử
int main() {
cout << test(2);
}
xem nó in ra mầy ? tại sao 2 lại không phải số nguyên tố?
Tính Số nguyên tố trước n mà anh ? anh đọc kĩ câu hỏi dùm em với @@
Thì bạn chỉ test với số 2 xem cái hàm này có đúng k ấy?
Cái hàm test này nếu là
SNT : return 1 không phải thì return 0;
Vậy tại sao với số 2 nó lại return 0 ý mình là thế?