এই কোডের ৮ নাম্বার লাইনে if(n==2)-এর বদলে যদি আমি if(n=2) দেই তাহলে যেই নাম্বারই ইনপুট দেই না কেন, সবই মৌলিক সংখ্যা দেখায়। কেন?

#include <stdio.h>
int is_prime(int n)
{
    int i;
    if(n<2){
        return 0;
    }
    if(n==2){
        return 1;
    }
    if(n%2==0){
        return 0;
    }
    for(i=3; i<=n/2; i=i+2){
        if(n%i==0){
            return 0;
        }
    }
    return 1;
}

int main()
{
    int n;
    while(1){
        printf("Please enter a number (enter 0 to exit):");
        scanf("%d", &n);

        if(n==0){
            break;
        }
        if(1==is_prime(n)){
            printf("%d is a prime number\n", n);
        }
        else{
            printf("%d is not a prime number\n", n);
        }
    }
    return 0;
}

asked 31 May, 13:13

stardestroyer77's gravatar image

stardestroyer77
315

edited 31 May, 15:44

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
1.1k18


if (n == 2) মানে n আর 2 সমান কি না যাচাই করা।

if (n = 2) আর নিচের কোড একই

n = 2;
if (n) {...}
// অথবা
if (2) {...}

সি ভাষায় 0 মানে মিথ্যা। অন্য যেকোনো সংখ্যা মানে সত্য। সুতরাং if (n = 2) মানে কন্ডিশন সব সময় সত্য। এই মান মেইন ফাংশন থেকে পাঠানো n-এর ওপর নির্ভর করে না, যেহেতু এখানে নতুন করে অ্যাসাইন করা হচ্ছে। কন্ডিশন সব সময় সত্য মানে সব সংখ্যার জন্য 1 রিটার্ন করে দিচ্ছে। আর প্রোগ্রাম অনুসারে 1 রিটার্ন করা মানে সংখ্যাটি মৌলিক, তাই সব সংখ্যা মৌলিক দেখাচ্ছে।

n == 2 দিলে কন্ডিশনটি তখনই সত্য হবে, যখন মেইন ফাংশন থেকে কেবল 2 পাঠানো হবে।

permanent link

answered 31 May, 15:54

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
1.1k18

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×418
×16
×6

question asked: 31 May, 13:13

question was seen: 224 times

last updated: 31 May, 15:54