2014-05-13 40 views
-3

我需要使用一個布爾變量來確定是否插入一個文本框,一個數是質數,可以用C#編寫布爾變量來確定素數asp.net

protected void isPrimeButton_Click(object sender, EventArgs e) 
{ 

    int TestNumber = int.Parse(primeNumberTextBox.Text); 
    bool isPrime = true; 

    for (int i = 0; i < TestNumber; i++) 
    { 
     while (TestNumber % i == 0) 
     { 
      bool isPrime = true; 
      yesNoPrimeTextBox.Text = "prime"; 
      break; 
     } 

     while (TestNumber % i == 0) 
     { 
      bool isPrime = false; 

      yesNoPrimeTextBox.Text = "not prime"; 
      break; 

     } 
    } 
} 
+6

是否有問題? –

+0

這裏有一些算法可以幫助http://en.wikipedia.org/wiki/Primality_test – Jerry

+0

在名爲「素數檢查器」的框中,如果一個數字是素數 和「NOT PRIME」,則程序返回「PRIME」if不是這樣。將代碼添加到處理適當的 「計算」按鈕上的方法的方法。您必須使用循環,但可以自由使用您認爲最適合的類型。 –

回答

0

不是很有效率,但這個肩膀d工作:

protected void isPrimeButton_Click(object sender, EventArgs e) 
{ 

    int TestNumber = int.Parse(primeNumberTextBox.Text); 
    bool isPrime = true; 

    for (int i = 2; i < TestNumber; i++) 
    { 
     if (TestNumber % i == 0) 
     { 
      isPrime = false; 
      break; 
     } 
    } 
    if (isPrime) 
     yesNoPrimeTextBox.Text = "prime"; 
    else 
     yesNoPrimeTextBox.Text = "not prime"; 

} 
0

這應該這樣做。

保護無效isPrimeButton_Click(對象發件人,EventArgs的){

int TestNumber = int.Parse(primeNumberTextBox.Text); 
bool isPrime = false; 

for (int i = 2; i < TestNumber-1; i++) 
{ 
    if (TestNumber % i == 0) 
    { 
     isPrime = true; 
     yesNoPrimeTextBox.Text = "prime"; 
     break; 
    }  
} 

}

1

提取IsPrime作爲方法,你就會有這樣的事情:

public static Boolean IsPrime(int value) { 
    if (value <= 1) 
    return false; 
    else if (value <= 3) // 2 and 3 are primes 
    return true; 
    else if (value % 2 == 0) // even numbers (2 excluded) are not primes 
    return false; 

    // Test odd numbers 3, 5, 7, ... as potential dividers 
    // up to square root of the value 
    int n = (int) (Math.Sqrt(value) + 1); 

    for (int i = 3; i <= n; i += 2) 
    if (value % i == 0) 
     return false; 

    return true; 
} 

... 

protected void isPrimeButton_Click(object sender, EventArgs e) { 
    int testNumber; 

    if (!int.TryParse(primeNumberTextBox.Text, out testNumber)) { 
    // primeNumberTextBox.Text is not a int (incorrect format) 
    //TODO: probably you have to put some text into yesNoPrimeTextBox.Text 
    return; 
    } 

    if (IsPrime(testNumber)) 
    yesNoPrimeTextBox.Text = "prime"; 
    else 
    yesNoPrimeTextBox.Text = "not prime"; 
} 
1

使用此方法來檢查: 也可以考慮改變返回類型,也許你希望它返回boolean變量,而不是字符串

 public static string CheckPrime(int number) 
    { 
     bool isPrime = true; 
     for (int i = 2; i < number; i++) 
     { 
      if (number % i == 0) 
      { 
       isPrime = false; 
       break; 
      } 
     } 
     if (isPrime) 
     { 

      return number.ToString() + " is a Prime number"; 
     } 
     else 
     { 
      return number.ToString() + " is not a Prime number"; 
     } 
    }