cari
Rumahpembangunan bahagian belakangC++Selepas menukar nombor perduaan yang diberi kepada asas antara L dan R, hitung bilangan nombor perdana

Selepas menukar nombor perduaan yang diberi kepada asas antara L dan R, hitung bilangan nombor perdana

Tajuk "Pengiraan nombor perdana selepas menukar nombor binari yang diberikan antara L dan R" merujuk kepada masalah matematik yang melibatkan penukaran nombor binari kepada asas antara L dan R dan kemudian mengira nombor dari antara L dan R Bilangan nombor perdana. Tukar. Dalam matematik, nombor perdana ialah integer yang lebih besar daripada 1 yang hanya boleh dibahagi dengan 1 dan dirinya sendiri.

Untuk menukar nombor binari kepada nombor dalam asas yang berbeza, anda perlu menulis nombor dalam sistem nombor yang berbeza. Asas sistem nombor ialah bilangan nombor unik, dan penukaran dicapai dengan mencari perwakilan setara nombor itu dalam pangkalan baharu. Pengiraan nombor perdana selepas transformasi ialah masalah teori nombor yang sukar yang mempunyai kegunaan dalam kriptografi, sains komputer dan bidang lain. Untuk menyelesaikan masalah ini anda perlu tahu banyak tentang teori nombor, nombor perdana dan sistem nombor.

Apakah nombor perdana?

Sesuatu nombor dipanggil perdana hanya jika ia boleh dibahagi dengan 1 dan nombor itu sendiri. Sebagai contoh, nombor 5 adalah perdana kerana ia hanya boleh dibahagi dengan nombor 1 dan 5, tetapi 6 bukan perdana kerana ia juga boleh dibahagikan dengan 2 dan 3.

Nombor prima hanyalah bertanya berapa bilangan prima yang terdapat dalam set nombor tertentu. Sebagai contoh, ambil satu set nombor {1,2,3,4,5,6,7,8,9}. Dalam set nombor ini, bilangan nombor perdana ialah 4, dan ia adalah 2, 3, 5 , dan 7. Tambahan pula, 1 bukanlah nombor perdana kerana satu-satunya faktor positifnya ialah 1 itu sendiri.

Kaedah

Terdapat dua cara utama untuk mengira masalah nombor perdana seperti yang ditunjukkan di bawah −

  • Kaedah ganas

  • Pemfaktoran Perdana

Algoritma

Langkah 1 - Masukkan nombor binari dan julat untuk asas L dan R.

Langkah 2 - Ulangi setiap tapak antara L dan R (termasuk).

Langkah 3 - Tukar nombor binari kepada asas semasa.

Langkah 4 − Semak sama ada nombor yang ditukar ialah nombor perdana.

Langkah 5 - Jika nombor yang ditukar ialah nombor perdana, tambahkan kiraan nombor perdana sebanyak 1.

Langkah 6 - Ulang langkah 3-5 untuk semua tapak dalam julat L hingga R.

Langkah 7 − Kembalikan jumlah bilangan nombor perdana yang diperolehi.

Diberikan di bawah ialah pseudokod algoritma -

input: binary number b, range of bases L and R
output: count of prime numbers in the given range

Number_of_prime = 0
for base = L to R
convert b to base
if number_is_prime(converted_number)
   Number_of_prime ++
return Number_of_prime

number_is_prime() ialah kaedah yang menerima nombor sebagai input dan mengembalikan nilai boolean yang menunjukkan sama ada nombor itu adalah perdana.

Kaedah 1: Penyelesaian ganas

Pendekatan Brute Force melibatkan penukaran nombor binari ke dalam setiap asas dari L ke R dan mengira bilangan nombor perdana dalam setiap penukaran. Untuk nombor yang lebih besar, semua kemungkinan variasi perlu disemak, yang boleh memakan masa.

Kod di bawah mengandungi tiga fungsi. Fungsi pertama ialah "isPrime" yang mengembalikan 1 jika nombor input adalah perdana dan 0 sebaliknya. Fungsi kedua "binaryToDecimal" menukar nombor binari kepada nombor perpuluhan. Fungsi ketiga "countPrimes" mengira bilangan nombor perdana yang diperoleh dengan menukar nombor binari antara julat input kepada nombor perpuluhan. Akhir sekali, fungsi utama mengambil nombor binari dan julat nombor, memanggil fungsi "countPrimes" dan mencetak kiraan nombor perdana.

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

Kod ini menyediakan nilai yang dipratentukan untuk nombor binari dan julat L dan R. Dalam contoh ini saya menggunakan nombor binari 1010 dan julat 5 hingga 20. Anda boleh menukar nilai ini dalam fungsi utama mengikut keperluan.

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

// Function to check if a number is prime or not
int isPrime(int n) {
   int i;
   for(i = 2; i <= sqrt(n); i++) {
      if(n%i == 0) {
         return 0;
      }
   }
   return 1;
}

// Function to convert binary to decimal
int binaryToDecimal(int n) {
   int decimal = 0, i = 0, remainder;
   while(n != 0) {
      remainder = n % 10;
      n /= 10;
      decimal += remainder * pow(2, i);
      ++i;
   }
   return decimal;
}

// Function to count primes in a given range
int countPrimes(int L, int R) {
   int count = 0, i;
   for(i = L; i <= R; i++) {
      int decimal = binaryToDecimal(i);
      if(isPrime(decimal)) {
         count++;
      }
   }
   return count;
}

// Main function
int main() {
   int binary = 1010; // Example binary number
   int L = 5;         // Example range lower limit
   int R = 20;        // Example range upper limit

   // Count primes and print result
   int count = countPrimes(L, R);
   printf("Number of primes after converting %d to base between %d and %d is: %d\n", binary, L, R, count);

   return 0;
}

Output

Number of primes after converting 1010 to base between 5 and 20 is: 7

Kaedah 2: Pemfaktoran Perdana

Pemfaktoran perdana melibatkan mencari faktor perdana bagi nombor yang diubah dan menyemak sama ada ia berada dalam julat perdana. Ia boleh menjadi kaedah yang cekap untuk nombor yang lebih kecil, tetapi boleh menjadi mahal dari segi pengiraan untuk nombor yang lebih besar.

Kod di bawah mentakrifkan dua fungsi, isPrime() dan countPrimes(), yang menyemak sama ada nombor yang diberikan ialah nombor perdana atau mengira bilangan prima sebelum nombor tertentu. Fungsi utama menerima nombor perduaan dan had radix yang dimasukkan oleh pengguna, menukar nombor perduaan kepada perpuluhan, dan kemudian menukarnya kepada radix berbeza dalam had yang diberikan. Untuk setiap penukaran, program mencari faktor utama dan, jika ia berada dalam had asas semasa, menambah pembilang. Akhirnya, program mencetak bilangan prima yang ditemui. Kod ini mengimport input/output standard dan perpustakaan boolean.

Terjemahan bahasa Cina bagi

Code

ialah:

code

#include <stdio.h>
#include <stdbool.h>
#include <math.h>

bool isPrime(int n) {
   if (n <= 1) {
      return false;
   }
   int i;
   for (i = 2; i <= sqrt(n); i++) {
      if (n % i == 0) {
         return false;
      }
   }
   return true;
}

int main() {
   int binaryNum = 110101; // Predefined binary number input
   int L = 3; // Predefined lower limit of base
   int R = 6; // Predefined upper limit of base

   int decimalNum = 0, base = 1;
   while (binaryNum > 0) {
      int digit = binaryNum % 10;
      decimalNum += digit * base;
      base *= 2;
      binaryNum <span>/</span>= 10;
   }

   int transformedNum, factor;
   int primeCount = 0;
   for (int baseNum = L; baseNum <= R; baseNum++) {
      transformedNum = decimalNum;
      while (transformedNum > 1) {
         for (int i = 2; i <= transformedNum; i++) {
            if (transformedNum % i == 0) {
               factor = i;
               break;
            }
         }
         transformedNum <span>/</span>= factor;
         if (isPrime(factor) && factor >= baseNum) {
            primeCount++;
         }
      }
   }
   printf("Count of primes after converting the given binary number in base between L to R is: %d", primeCount);
   return 0;
}

Output

Count of primes after converting the given binary number in base between L to R is: 4

Kesimpulan

Untuk meringkaskan, kita boleh menentukan bilangan nombor perdana dengan terlebih dahulu menukar nombor perduaan yang diberikan kepada asas antara L dan R, dan kemudian mengira bilangan nombor perdana dalam julat itu.

Atas ialah kandungan terperinci Selepas menukar nombor perduaan yang diberi kepada asas antara L dan R, hitung bilangan nombor perdana. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:tutorialspoint. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
C# vs C: Lembaran Lelajaran dan Pengalaman PemajuC# vs C: Lembaran Lelajaran dan Pengalaman PemajuApr 18, 2025 am 12:13 AM

Terdapat perbezaan yang signifikan dalam lengkung pembelajaran C# dan C dan pengalaman pemaju. 1) Keluk pembelajaran C# agak rata dan sesuai untuk pembangunan pesat dan aplikasi peringkat perusahaan. 2) Keluk pembelajaran C adalah curam dan sesuai untuk senario kawalan berprestasi tinggi dan rendah.

C# vs C: Pengaturcaraan dan ciri berorientasikan objekC# vs C: Pengaturcaraan dan ciri berorientasikan objekApr 17, 2025 am 12:02 AM

Terdapat perbezaan yang signifikan dalam bagaimana C# dan C melaksanakan dan ciri-ciri dalam pengaturcaraan berorientasikan objek (OOP). 1) Definisi kelas dan sintaks C# lebih ringkas dan menyokong ciri -ciri canggih seperti LINQ. 2) C menyediakan kawalan berbutir yang lebih baik, sesuai untuk pengaturcaraan sistem dan keperluan prestasi tinggi. Kedua -duanya mempunyai kelebihan mereka sendiri, dan pilihannya harus berdasarkan senario aplikasi tertentu.

Dari XML ke C: Transformasi dan Manipulasi DataDari XML ke C: Transformasi dan Manipulasi DataApr 16, 2025 am 12:08 AM

Menukar dari XML ke C dan melakukan operasi data boleh dicapai melalui langkah -langkah berikut: 1) Parsing Fail XML menggunakan perpustakaan TinyXML2, 2) Pemetaan data ke dalam struktur data C, 3) Menggunakan perpustakaan standard C seperti STD :: Vektor untuk operasi data. Melalui langkah -langkah ini, data yang ditukar dari XML boleh diproses dan dimanipulasi dengan cekap.

C# vs C: Pengurusan memori dan koleksi sampahC# vs C: Pengurusan memori dan koleksi sampahApr 15, 2025 am 12:16 AM

C# menggunakan mekanisme pengumpulan sampah automatik, manakala C menggunakan pengurusan memori manual. 1. Pemungut Sampah C 2.C menyediakan kawalan memori yang fleksibel, sesuai untuk aplikasi yang memerlukan pengurusan yang baik, tetapi harus dikendalikan dengan berhati -hati untuk mengelakkan kebocoran ingatan.

Di luar gembar -gembur: Menilai kaitan C hari iniDi luar gembar -gembur: Menilai kaitan C hari iniApr 14, 2025 am 12:01 AM

C masih mempunyai kaitan penting dalam pengaturcaraan moden. 1) Keupayaan operasi prestasi tinggi dan perkakasan langsung menjadikannya pilihan pertama dalam bidang pembangunan permainan, sistem tertanam dan pengkomputeran berprestasi tinggi. 2) Paradigma pengaturcaraan yang kaya dan ciri -ciri moden seperti penunjuk pintar dan pengaturcaraan templat meningkatkan fleksibiliti dan kecekapannya. Walaupun lengkung pembelajaran curam, keupayaannya yang kuat menjadikannya masih penting dalam ekosistem pengaturcaraan hari ini.

Komuniti C: Sumber, Sokongan, dan PembangunanKomuniti C: Sumber, Sokongan, dan PembangunanApr 13, 2025 am 12:01 AM

C Pelajar dan pemaju boleh mendapatkan sumber dan sokongan dari StackOverflow, Komuniti R/CPP Reddit, Coursera dan EDX, Projek Sumber Terbuka di GitHub, Perkhidmatan Perundingan Profesional, dan CPPCON. 1. StackOverflow memberikan jawapan kepada soalan teknikal; 2. Komuniti R/CPP Reddit berkongsi berita terkini; 3. Coursera dan EDX menyediakan kursus f rasmi; 4. Projek sumber terbuka pada GitHub seperti LLVM dan meningkatkan kemahiran meningkatkan; 5. Perkhidmatan perundingan profesional seperti jetbrains dan perforce menyediakan sokongan teknikal; 6. CPPCON dan persidangan lain membantu kerjaya

C# vs C: di mana setiap bahasa cemerlangC# vs C: di mana setiap bahasa cemerlangApr 12, 2025 am 12:08 AM

C# sesuai untuk projek yang memerlukan kecekapan pembangunan tinggi dan sokongan silang platform, manakala C sesuai untuk aplikasi yang memerlukan prestasi tinggi dan kawalan asas. 1) C# Memudahkan pembangunan, menyediakan pengumpulan sampah dan perpustakaan kelas yang kaya, sesuai untuk aplikasi peringkat perusahaan. 2) C membolehkan operasi memori langsung, sesuai untuk pembangunan permainan dan pengkomputeran berprestasi tinggi.

Penggunaan berterusan C: Sebab -sebab ketahanannyaPenggunaan berterusan C: Sebab -sebab ketahanannyaApr 11, 2025 am 12:02 AM

C Alasan penggunaan berterusan termasuk prestasi tinggi, aplikasi luas dan ciri -ciri yang berkembang. 1) Prestasi kecekapan tinggi: C melaksanakan dengan baik dalam pengaturcaraan sistem dan pengkomputeran berprestasi tinggi dengan terus memanipulasi memori dan perkakasan. 2) Digunakan secara meluas: bersinar dalam bidang pembangunan permainan, sistem tertanam, dan lain -lain. 3) Evolusi berterusan: Sejak pembebasannya pada tahun 1983, C terus menambah ciri -ciri baru untuk mengekalkan daya saingnya.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual