#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
int n;
nhaplaidipanoi:
cout << "nhap gia tri n: " << endl;
cin >> n;
while (n <3)
{
goto nhaplaidipanoi;
}
int temp = n;
int tong = 0;
for (int i = 3; i < sqrt(temp); i++)
{
if (i % 2 != 0)
{
cout << "so nay la so nguyen to : " << i << endl;
tong += i;
}
if (tong > 0 && tong < 120)
{
cout << "so n : " << n << " la so co tong cac so nguyen to thoa dieu kien!! co tong =" << tong << endl;
}
else
{
break;
cout << "so n : " << n << " la so khong thoa dieu kien!!" << endl;
}
}
system("pause");
return 0;
}
Tính tổng các số nguyên tố nhỏ hơn n ( đk 0>tong>120)
2 Likes
đâu cần thiết! nếu thích thì ép kiểu visual 2013 nó k báo lỗi mà
1 Like
~~. vậy cái vs 2010 của em sao ko chạy dc nhở ?
1 Like
sao mà bik đc! của mình xài vs 2013
1 Like
#include<iostream>
#include<math.h>
using namespace std;
int main() {
int so_tu_nhien,sum1=0,sum=0,check=1;
do {
cout<<"Nhap gia tri cua so_tu_nhien:";
cin>>so_tu_nhien;
if(so_tu_nhien<2)
cout<<"Gia tri cus n da nhap khong hop le"<<endl;
} while(so_tu_nhien<2);
for(int k=2; k<so_tu_nhien; k++) {
if(check==0)
check=1;
for(int i=2; i<=(sqrt((double)k))&✓ i++)
check=k%i;
if(check) {
sum=sum+k;
if(sum<=120)
sum1=sum1+k;
if(sum>120)
break;
}
}
cout<<"Tong can tim la:Sum="<<sum1<<endl;
return 0;
}
Như mình được biết, thì số nguyên tố luôn >=2 nên tổng luôn luôn>=0 rồi, nên chỉ cần kiểm tra số đã nhập lớn hơn 2 và tổng <=120 hay không thôi.Mới học C++ nên nhờ mọi người fix lại giúp mình với.
2 Likes
nếu chia ko hết cho 2 thì ta xét các trường hợp lẻ cần j phải xét thế! còn nữa tại sao phải thêm if nhìu nữa trong khi ta có thể sum ở chỗ xét nguyên tố l! bạn xem code mình nhé hì
1 Like