Tìm Số nguyên tố n và tổng số nguyên dương thoả điều kiện đã cho

Đề bài : Tính tổng các số nhỏ hơn số nguyên tố đã cho phù hợp điều kiện (30>tổng>120)

#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
	int n;
	nhaplaidipanoi:cout << "nhap gia tri n: " << endl;
	cin >> n;
	while (n<1)
	{
		goto nhaplaidipanoi;
	}
	bool check = true;
	int temp= n;
	if (n < 2)
	{
		check = false;
	}
	else
	{
		for (int i = 3; i < sqrt(temp); i += 2)
		{
			if (i % 2 == 0)
			{
				check = false;
			}
			else
			{
				check = true;
			}
		}
	}
	if (check == true)
	{
		int tong_So_Nguyen_To = 0;
		int i = 1;
		while (i < n)
		{
			tong_So_Nguyen_To += i;
			i++;
		}
		if (tong_So_Nguyen_To>30 && tong_So_Nguyen_To < 120)
		{
			cout << "tong so nguyen to cua n =" << n << " thoa dieu kien" << endl;
		}
		else
		{
			cout << "tong so nguyen to cua n =" << n << " khong thoa dieu kien" << endl;
		}
	}
	system("pause");
	return 0;
}

ai thắc mắc thì hỏi mình giải đáp

3 Likes

Theo đề thì chả có số nào 30>n>120. Thì in kết quả = 0 luôn =))

1 Like

hehe bác mới nói e mới sủa r :v:

1 Like

nói chung không hiểu ý của bạn lắm. còn đây là thuật toán của mình

def sieve(n):
    a=[True]*(n+1)
    t=int(n**0.5)
    for i in range(2,t+1):
        if a[i]:
            j=0
            while i*(i+j)<=n:
                a[i*(i+j)]=False
                j+=1
    primes=[]
    for i in range(2,n+1):
        if a[i]: primes.append(i)
    return primes
"""
>>>print(sieve(100))
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
>>>print(sum(sieve(100)))
1060
"""
4 Likes

code này cũng là ngôn ngữ C ạ?
e thấy lạ quá.

Cái này là Python. Mình thường dùng để viết tư tưởng thuật toán

2 Likes

@minhdiem này cũng đc mà :volcano:

1 Like

@Gio b đi thi olympic tin đấy ah? :smile:

1 Like

olympic thì chủ yếu là thuật toán! cách của mình chỉ xét theo trường hợp! học cấu trúc dữ liệu và giải thuật sẽ hiểu

3 Likes

I moved 4 posts to a new topic: Phỏng vấn @Gio 5 phút

Có thể không dùng biến primes:

return [i for i in xrange(2, n+1) if a[i]]
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?