C Program to Print Alternate Prime Numbers from 1 to n 2024 – coolblog

பிரைம் ரத்தினங்களைக் கண்டுபிடிப்பதற்கு எண்களைப் பிரிப்பது ஒரு கடினமான பணியாக இருக்கலாம், ஆனால் சரியான கருவி மூலம், இது சி நிரலாக்கத்தில் ஒரு நேர்த்தியான பயிற்சியாக மாறும். இந்தக் கட்டுரையானது C இல் 1 முதல் n வரையிலான மாற்று முதன்மை எண்களை அச்சிடுவது, திறமையான அல்காரிதம்கள், நடைமுறை குறியீடு எடுத்துக்காட்டுகள் மற்றும் தேர்வுமுறை நுட்பங்கள் ஆகியவற்றை ஆராய்ந்து, இந்த எண்ணியல் சவாலில் தேர்ச்சி பெற உதவும்.

1. சவாலைப் புரிந்துகொள்வது: தொடர்ச்சியான பிரைம்களுக்கு அப்பால்

ஒரு வரம்பிற்குள் அனைத்து முதன்மை எண்களையும் கண்டுபிடிப்பது ஒரு பொதுவான நிரலாக்க பணியாகும், ஆனால் மற்ற அனைத்தையும் அச்சிடுவது ஒரு புதிரான திருப்பத்தை சேர்க்கிறது. இதற்கு தனிப்பட்ட ப்ரைம்களை அடையாளம் காண்பது மட்டுமின்றி, அவற்றின் நிகழ்வைக் கண்காணித்து அதற்கேற்ப அச்சிடுவதும் தேவைப்படுகிறது.

2. அல்காரிதம் உத்திகள்: செயல்திறனுக்கான சல்லடை

இரண்டு முதன்மை அல்காரிதம்கள் இந்த சவாலை திறமையாக சமாளிக்கின்றன:

  • அப்பாவி அணுகுமுறை: 1 முதல் n வரையிலான அனைத்து எண்களையும் லூப் செய்யவும், தனிப்பட்ட காசோலைகளைப் பயன்படுத்தி முதன்மைத்தன்மையை சரிபார்க்கவும் (சிறிய ப்ரைம்களால் வகுபடுதல்) மற்றும் எதிர்கொள்ளும் ஒவ்வொரு பிரைமையும் அச்சிடவும். இந்த முறை, எளிமையானது என்றாலும், n இன் பெரிய மதிப்புகளுக்கு கணக்கீட்டு ரீதியாக விலை அதிகம்.

சி

for (int i = 1; i <= n; i++) {
  int is_prime = 1; // Assume prime
  for (int j = 2; j <= i / 2; j++) { // Check divisibility by smaller primes
    if (i % j == 0) {
      is_prime = 0; // Not prime
      break;
    }
  }
  if (is_prime && (i % 2 != 0 || i == 2)) { // Print every other prime
    printf("%d ", i);
  }
}
  • எரடோஸ்தீனஸின் சல்லடை: இந்த உகந்த அல்காரிதம், அறியப்பட்ட பகா எண்களின் மடங்குகளின் அடிப்படையில் கூட்டு எண்களை (பிரதமம் அல்லாதவை) குறிக்க பூலியன் வரிசையை உருவாக்குகிறது. மீண்டும் மீண்டும் பெருக்கல்களை நீக்குவதன் மூலம், மீதமுள்ள குறியிடப்படாத எண்கள் முதன்மையானது என்று உத்தரவாதம் அளிக்கப்படுகிறது. இந்த அணுகுமுறையானது தேவைப்படும் முதன்மைச் சரிபார்ப்புகளின் எண்ணிக்கையை கணிசமாகக் குறைக்கிறது, இது பெரிய வரம்புகளுக்கு மிகவும் திறமையானதாக அமைகிறது.

சி

#define MAX_SIZE 10000 // Adjust based on desired range

int is_prime[MAX_SIZE];

void sieve(int n) {
  memset(is_prime, 1, sizeof(is_prime)); // Mark all as prime initially
  for (int i = 2; i <= sqrt(n); i++) { // Loop for known primes
    if (is_prime[i]) {
      for (int j = i * i; j <= n; j += i) { // Mark multiples as composite
        is_prime[j] = 0;
      }
    }
  }
}

int main() {
  int n;
  printf("Enter upper limit (n): ");
  scanf("%d", &n);

  sieve(n);
  int count = 0;
  for (int i = 2; i <= n; i++) {
    if (is_prime[i] && count % 2 == 0) { // Print every other prime
      printf("%d ", i);
      count++;
    }
  }
  printf("\n");

  return 0;
}

இரண்டு வழிமுறைகளும் விரும்பிய முடிவை அடைகின்றன, ஆனால் எரடோஸ்தீனஸின் சல்லடை பெரிய தரவுத்தொகுப்புகளுக்கு குறிப்பிடத்தக்க செயல்திறன் ஆதாயங்களை வழங்குகிறது.

3. உகப்பாக்கம் நுட்பங்கள்: உங்கள் குறியீட்டை நன்றாகச் சரிப்படுத்துதல்

சரியான அல்காரிதத்தைத் தேர்ந்தெடுப்பதற்கு அப்பால், கூடுதல் மேம்படுத்தல்கள் உங்கள் நிரலின் செயல்திறனை மேலும் மேம்படுத்தலாம்:

  • வரம்பு சல்லடை அளவு: முழு வரம்பிற்கும் ஒரு சல்லடையை உருவாக்குவதற்குப் பதிலாக, மேல் வரம்பின் (n) அடிப்படையில் தேவையான அதிகபட்ச முதன்மையைக் கணக்கிட்டு, சிறிய சல்லடை அளவைப் பயன்படுத்தவும்.
  • முன்கணிப்பு முதன்மைகள்: சல்லடைச் செயல்பாட்டின் போது மீண்டும் மீண்டும் முதன்மைச் சோதனைகளைத் தவிர்க்க, அறியப்பட்ட முதன்மை எண்களின் பட்டியலை முன்பே சேமித்து வைக்கவும்.
  • பிட் கையாளுதலைப் பயன்படுத்தவும்: மேம்பட்ட இடம் மற்றும் நேர செயல்திறனுக்காக சல்லடை வரிசையில் உள்ள உறுப்புகளைக் குறிக்கவும் அணுகவும் பிட் செயல்பாடுகளைப் பயன்படுத்தவும்.

இந்த நுட்பங்கள், கவனமாக அல்காரிதம் தேர்வுடன் இணைந்து, உங்கள் நிரலின் செயல்திறனை கணிசமாக அதிகரிக்கலாம், குறிப்பாக பெரிய எண்களைக் கையாளும் போது.

4. அடிப்படைகளுக்கு அப்பால்: மாறுபாடுகளை ஆராய்தல்

மாற்று ப்ரைம்களை அச்சிடுவதற்கான முக்கிய கருத்து மேலும் சவால்களை ஆராய நீட்டிக்கப்படலாம்:

  • nth Alternate Prime அச்சிடுதல்: அவை அனைத்திற்கும் பதிலாக n வது மாற்று பிரதான எண்ணை அச்சிட குறியீட்டை மாற்றவும்.
  • ஒரு குறிப்பிட்ட வரம்பிற்குள் முதன்மைகளைக் கண்டறிதல்: ஒட்டுமொத்த வரம்பிற்குள் (n) குறிப்பிட்ட துணை வரம்பிற்குள் மாற்று ப்ரைம்களைக் கண்டறிய நிரலை மாற்றியமைக்கவும்.
  • மற்ற எண் கோட்பாட்டின் கருத்துகளுடன் இணைத்தல்: மிகவும் சிக்கலான மற்றும் ஈர்க்கக்கூடிய நிரல்களை உருவாக்க இரட்டைப் பகாக்களைக் கண்டறிதல் அல்லது முதன்மை காரணியாக்கம் போன்ற பிற எண் கோட்பாடுகளுடன் இந்த அல்காரிதத்தை ஒருங்கிணைக்கவும்.

இந்த மாறுபாடுகள் முதன்மை எண் அடையாளம் மற்றும் கையாளுதல் பற்றிய உங்கள் புதிய புரிதலின் பரிசோதனை மற்றும் பயன்பாட்டை ஊக்குவிக்கின்றன.

5. முடிவு: சல்லடை கலையில் தேர்ச்சி பெறுதல்

C இல் மாற்று முதன்மை எண்களை அச்சிடுவது முதலில் எளிமையான பணியாகத் தோன்றலாம், ஆனால் அடிப்படை வழிமுறைகள் மற்றும் தேர்வுமுறை நுட்பங்களைப் புரிந்துகொள்வதன் மூலம், மிகவும் சவாலான தரவுத்தொகுப்புகளைக் கூட கையாளக்கூடிய திறமையான மற்றும் நேர்த்தியான குறியீட்டை நீங்கள் எழுதலாம்.

இந்தக் கட்டுரை, அடிப்படைக் கருத்துகள், வழிமுறைகள் மற்றும் தேர்வுமுறை நுட்பங்களை உள்ளடக்கிய தலைப்பின் விரிவான கண்ணோட்டத்தை வழங்கியது. வழங்கப்பட்ட குறியீட்டு எடுத்துக்காட்டுகளுடன் பயிற்சி செய்வதன் மூலமும், பரிந்துரைக்கப்பட்ட மாறுபாடுகளை ஆராய்வதன் மூலமும், நீங்கள் சல்லடை கலையில் தேர்ச்சி பெறலாம் மற்றும் பிரதான எண்களை அடையாளம் காண்பதில் மாஸ்டர் ஆகலாம்.

இந்த சவாலான பணியில் நீங்கள் தேர்ச்சி பெற உதவும் சில கூடுதல் உதவிக்குறிப்புகள் இங்கே:

  • பயிற்சி சரியானதாக்குகிறது. நீங்கள் எவ்வளவு அதிகமாக பயிற்சி செய்கிறீர்களோ, அவ்வளவு சிறப்பாக திறமையான அல்காரிதம்களை அடையாளம் கண்டு செயல்படுத்துவீர்கள்.
  • பரிசோதனை செய்ய பயப்பட வேண்டாம். வெவ்வேறு அணுகுமுறைகளை முயற்சிக்கவும், உங்களுக்கு எது சிறந்தது என்பதைப் பார்க்கவும்.
  • ஆன்லைன் ஆதாரங்களைப் பயன்படுத்தவும். இணையதளங்கள், மன்றங்கள் மற்றும் பயிற்சிகள் உட்பட பல பயனுள்ள ஆதாரங்கள் ஆன்லைனில் கிடைக்கின்றன.

பயிற்சி மற்றும் அர்ப்பணிப்புடன், நீங்கள் சல்லடை கலையில் தேர்ச்சி பெறலாம் மற்றும் பிரதான எண்களை அடையாளம் காண்பதில் மாஸ்டர் ஆகலாம். எனவே நீங்கள் எதற்காக காத்திருக்கிறீர்கள்? இன்றே பயிற்சியைத் தொடங்குங்கள்!

Leave a Comment