要求用定义方法来判断一个数是不是一个素数,以前会编的,好久没编了,今天编出了问题,解决不了,求解答。下面是我编的。请帮忙改改。    public class maint
    {
        public static void Main()
        {
            int x;
            Console.WriteLine("请输入一个正整数");
            x = int.Parse(Console.ReadLine());
            if (isprime)                Console.WriteLine("不是素数");
            else
                Console.WriteLine("是素数");
        }
    }
    public class isprime
    {
        public bool prime(int num)
        {
            bool isprime = true;
            for (int i = 2; i < num; i++)
            {
                if (num % i == 0)
                    return false;
                else
                    return true;
            }
        }
    }

解决方案 »

  1.   


    public bool prime(int num)
    {
      for (int i = 2; i < num/2; i++)
      {
      if (num % i == 0)
      return false;
      }
      return true;
    }
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.Text;namespace P52_1
    {
        class Program
        {
            static void Main(string[] args)
            {
                Cal a = new Cal();
                a.sushu();
            }
        }
        class Cal
        {
            private int c=0;
            string s;        public int C
            {
                get
                {
                    return c;
                }
                set
                {
                    if (value <= 0)
                    {
                        Console.WriteLine("请输入正数!");
                        return;
                    }
                    c = value;
                }
            }
            public void sushu()
            {
                Console.WriteLine("请输入一个正数:");
                do
                {
                    s = Console.ReadLine();
                    try
                    {
                        C = Int32.Parse(s);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine("请输入数字!");
                    }
                } while (c <= 0);            for (int i = 2; i < C; i++)
                {
                    if (C % i == 0)
                    {
                        Console.WriteLine("您输入的正数{0}不是素数,第一个整除的数是{1}", C, i);
                        return;
                    }
                }
                Console.WriteLine("您输入的正数{0}是素数。", C);        }
        }
    }
    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cybcha/archive/2007/11/29/1907017.aspx
      

  3.   

    public class maint
      {
      public static void Main()
      {
      int x;
      Console.WriteLine("请输入一个正整数");
      x = int.Parse(Console.ReadLine());
      if (new isprime.prime(x))  Console.WriteLine("不是素数");
      else
      Console.WriteLine("是素数");
      }
      }
      public class isprime
      {
      public bool prime(int num)
      {
      bool isprime = true;
      for (int i = 2; i < num; i++)
      {
         if (num % i == 0)
         {
           return false;
           break;
          }
       }
     return true;
      }
      }
      

  4.   

     public class maint
      {
      public static void Main()
      {
      int x;
      Console.WriteLine("请输入一个正整数");
      x = int.Parse(Console.ReadLine());
      if (new isprime().prime(x))
      Console.WriteLine("不是素数");
      else
      Console.WriteLine("是素数");
      }
      }
      public class isprime
      {
      public bool prime(int num)
      {
       
      for (int i = 2; i < num; i++)
      {
      if (num % i == 0)
       {
        return false;
        break;
       }
      } 
      return true;

      }
      }
      

  5.   

    判断ublic bool prime(int num)
    {
      for (int i = 2; i <= (int)Math.Sqrt(num); i++)
      {
      if (num % i == 0)
      return false;
      }
      return true;
    }求小于N的素数public List<Int32> GetPrimersLessThan(Int32 n)
           {
               Int32 pre = 5;
               Int32 cur = 5;
               Boolean flag = true;  // true +2   false +4
               Boolean isPrimer;
               List<Int32> list = new List<Int32>();
               list.Add(2);
               list.Add(3);
               list.Add(5);
               while (true)
               {
                   isPrimer = true;               if (flag)
                   {
                       cur = pre + 2;
                   }
                   else
                   {
                       cur = pre + 4;
                   }               if (cur >= n)
                       break;               for (Int32 i = 0; i < list.Count; i++)
                   {
                       if (cur % list[i] == 0)
                       {
                           isPrimer = false;
                           break;
                       }
                   }
                   if (isPrimer)
                   {
                       list.Add(cur);
                   }
                   pre = cur;           }           return list;
           }
      

  6.   

    错误 1 “shi.isprime.prime(int)”是“方法”,但此处被当做“类型”来使用
    rwm53你的有错误,跟我之前一样错误,还是不能运行,继续求解
      

  7.   

     if (new isprime.prime(x))
    bool isprime = true;
                for (int i = 2; i < num; i++)
                {
                    if (num % i == 0)
                    {
                        return false;
                        break;
                    }
                }
                return true;
    错误,错误。错误 1
    “shi.isprime.prime(int)”是“方法”,但此处被当做“类型”来使用 C:\Users\acer\Desktop\shi\shi\Program.cs 14 29 shi
      

  8.   

    if (new isprime.prime(x))                Console.WriteLine("不是素数");
                else
                    Console.WriteLine("是素数");
            }
    错误,错误
    “shi.isprime.prime(int)”是“方法”,但此处被当做“类型”来使用 C:\Users\acer\Desktop\shi\shi\Program.cs 14 29 shi
      

  9.   

    int k=Console.ReadLine();
    int flag = 1;
    for (int i = 1; i <= k; i++)
      {
      for (int j = 2; j <= Math.Sqrt(i); j++)
      {
      if (i % j == 0)
      {
      flag = 0;
      break;
      }
      }
      if (flag == 1) Console.WriteLine("{0} ", i);
      flag = 1 ;   
      }
     }
    public bool IsPrimeNumber(long value)
    {
        if (value == 2)
        {
            return true;
        }    for (long i = 2; i <= Math.Ceiling(Math.Sqrt(value)); i++)
        {
            if ((value % i) == 0)
            {
                return false;
            }
        }    return true;
    }
      

  10.   

    你把函数prime写在另一个类isprime中,所以调用的时候要先找到类,再调用函数。
    if (isprime)
    改为:
    isprime LZ = new isprime();
    if(LZ.prime)还有,LZ你是报什么错误呢?算法错误,还是调用错误?你把错误贴出来会比较好分析一点。
      

  11.   


        public class maint
        {
            public static void Main()
            {
                int x;
                Console.WriteLine("请输入一个正整数");
                x = int.Parse(Console.ReadLine());
            
                if(prime(x))错误指向此处
                    Console.WriteLine("不是素数");
                else
                    Console.WriteLine("是素数");
            }
        }
        public class isprime
        {
            public bool prime(int num)
            {            for (int i = 2; i < num; i++)
                {
                    if (num % i == 0)
                    {
                        return false;
                        break;
                    }
                }
                return true;
            }
        }
    }
    这是我的程序,错误是编译错误,错误代码如下:
    错误 1当前上下文中不存在名称“prime”
      

  12.   

        class Program
        {
            static void Main(string[] args)
            {            int x;
                Console.WriteLine("请输入一个正整数");
                x = int.Parse(Console.ReadLine());
                if (new isprime().prime(x))                Console.WriteLine("是素数");
                else
                    Console.WriteLine("不是素数");
            }
        }    public class isprime
        {
            public bool prime(int num)
            {
                for(int i = 2; i <= (int)Math.Sqrt(num); i++)
                {
                    if (num % i == 0)
                        return false;
                }
                return true;
            }
        }测试通过
      

  13.   

    if (isprime(x))
    改为:
    isprime LZ = new isprime();
    if(LZ.prime(x))