Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.
Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin. Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Tub sonlar yig`indisi haqidagi masala

+5 ovoz
1,533 marta ko‘rilgan
so‘radi 09 fevral, 17 Jahongir Soataliyev (260 bal)
10 dan kichik bo`lgan tub sonlar yig`indisi 2 + 3 + 5 + 7 = 17

Ikki milliondan kichik bo`lgan tub sonlar yig`indisini toping.
izoh qoldirdi 09 fevral, 17 Kenjebaev (1,092 bal)
Qaysi dasturlash tilida ishlash kerak?
izoh qoldirdi 10 fevral, 17 Jahongir Soataliyev (260 bal)
men quyidagi kod bo`yicha masalani ishladim:
public class Test1 {
    public static void main(String[] args) {
        boolean[] primers = new boolean[2000000];
        for (int i = 0; i < primers.length; i++) {
            primers[i] = true;
        }
        primers[0] = primers[1] = false;
        for (int i = 2; i < primers.length; i++) {
            if (primers[i]) {
                for (int j = i + i; j < primers.length; j += i) {
                    primers[j] = false;
                }
            }
        }
        int s = 0;
        for (int i = 0; i < primers.length; i++) {
            if (primers[i]) {
                s += i;
            }
        }
        System.out.println(s);
    }

}
Javob :1179908154 chiqdi.
Saytga javobni jo`natsam, xato berdi.
izoh qoldirdi 11 fevral, 17 Jahongir Soataliyev (260 bal)
iloji bo`lsa JAVAda
izoh qoldirdi 14 fevral, 17 Saidolim (3,566 bal)
Agar kod java da kerak bo`lsa, savolda tag larda java ni ko`rsatib qo`ying.

4 Javoblar

+1 ovoz
javob berdi 10 fevral, 17 Kenjebaev (1,092 bal)

Javada eng sodda yo'li (mukammal qilib ishlasa bo'ladi)

public class Main {

    public static void main(String[] args) {
        long total = 0;
        boolean radical;
        for (int i = 2; i <= 2000000; i++) {
            radical = true;
            for (long j = 2; j < i; j++) {
                if (i % j == 0) {
                    radical = false;
                    break;
                }
            }
            if (radical) {
                total = total+ i;
                System.out.printf("%d, ", total);
            }
        }
    }
}
izoh qoldirdi 10 fevral, 17 Jahongir Soataliyev (260 bal)
bu usulda javobi chiqmadi.
izoh qoldirdi 10 fevral, 17 Kenjebaev (1,092 bal)
kodni o'zgartirib qo'ydim. Tekshirib ko'ring javob endi albatta chiqadi
izoh qoldirdi 11 fevral, 17 Jahongir Soataliyev (260 bal)
sizda javobi nechchi chiqdi?
0 ovoz
javob berdi 10 fevral, 17 Faxriddin (823 bal)
tahrirlandi 12 fevral, 17 Saidolim

Sonni tub son yoki tub son emasligini topish uchun sonni kvadrat ildizigacha bo'lgan sonlarga bo'lib ko'rish yetarli bo'ladi, Yani 17 sonnini tub yoki tub emasligini aniqlash uchun 17 dan kvadrat ildiz olamiz yani 4 gacha bo'lgan sonlarga bo'lish yetarli bo'ladi.

dasturda:

int n = 20000000;
int ildiz = sqrt(n);
boolean tub_son;

for(int i = 0; i < ildiz; i++){
tub_son = false;
  for(int j = 0; j < i; j++){
     if(n % j == 0)
        tub_son = true
   }
if(tub_son){
//Tub sonlar shu yerda
}
}
0 ovoz
javob berdi 12 fevral, 17 FAXRIDDIN TOJIBOYEV (306 bal)
tahrirlandi 12 fevral, 17 Saidolim
#include<iostream>
using namespace std;
int main()
{
    int i, j, n, s = 2;
    cin >> n;
    if (n == 2) cout << 2;
    else{
        for (i = 2; i <= n; i++)
        for (j = 2; j < i; j++){
            if (i%j == 0) break;
            else if (i == j + 1) s+= i;
        }
        cout << s;
    }
    return 0;
}
izoh qoldirdi 12 fevral, 17 FAXRIDDIN TOJIBOYEV (306 bal)
Man c++ da topishga harakat qildim
izoh qoldirdi 12 fevral, 17 Jahongir Soataliyev (260 bal)
bu yo`lda vaqt limitidan yutqazib qoyiladi.
izoh qoldirdi 13 fevral, 17 FAXRIDDIN TOJIBOYEV (306 bal)
tahrirlandi 13 fevral, 17 FAXRIDDIN TOJIBOYEV
1179908154 chiqdi manda o'rto
izoh qoldirdi 13 fevral, 17 FAXRIDDIN TOJIBOYEV (306 bal)
Lekin sayt negadir xato db yotibtia?
0 ovoz
javob berdi 13 fevral, 17 Shukurullo (5 bal)
tahrirlandi 14 fevral, 17 Saidolim

Men quyidagi usulda ishladim

public class Tub_son {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int s = 2;
        int[] a = new int[n];
        int m = (int) Math.sqrt(n);
        for (int i = 3; i < a.length; i += 2) {
            int k = 0;
            for (int j = 2; j <= Math.sqrt(i); j++) {
                if (i % j == 0) {
                    k = 1;
                    break;
                }
            }
            if (k == 0)
                s += i;
        }
        // 2+3+5+7+11+13
        System.out.println(s);
    }

}

menda ham

1179908154 chiqdi.

Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.

Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin.

Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Telegram kanal YordamUzRss

...