完成c#基础测试22题的第一题,求质数

质数就是在自然数中只有一和他本身不会再有其他的因数的数,

首先我们来理一下思路,要判断这个数是不是质数,就是用运算符%来判断%运算符是取值是取余数,我们可以根据质数的性质来看如果,除了1和他的本身,还有不为零的数那么他就不是质数,如果没有哪他就是质数

首先我们来定义一个用来计算是不是为质数的方法,再定1个数据,我们用for循环来判断是否为质数

 public void zhishu(int a)
        {
            int b;
            
         }

添加一个for循换,我们这里的循环从2和小于等于这个数减一开始是因为,质数是除了1和本身还有因数的数,我们排除了1和本身两个。如果再有就可以判断是不是质数,这里的b=a%i是我们输入一个数后用这个数来除除了1和他本身的所有数,用b记录下来,

 public void zhishu(int a)
        {
            int b;
            
            for (int i = 2; i <= a-1; i++)
            {
                b = a % i ;
                
             }
}

然后我们用if语句来判断,如果b==0那么就说明除了1和本身还有其他的因数,并且结束这个循环语句,那如果这个数是质数呢,我们再来判断如果b在除了我们输入这个数的一半后号还没有其他因数就可以判断他为质数,这样我们基本就实现了输入一个数来判断是不是为质数了

 public void zhishu(int a)
        {
            int b;
            
            for (int i = 2; i <= a-1; i++)
            {
                b = a % i ;
                

                if (b == 0)
                {
                    Console.WriteLine("该数不为质数");
                    break;
                }
                 else if(i>=a/2)
                 {
                  Console.WriteLine("该数为质数");
                   break;
                 }
             }
           }

主后我们把代码补完,让他能够运行起来

using System;

namespace zhishu_lx
{
    class Program
    {
        public void zhishu(int a)
        {
            int b;
           
            for (int i = 2; i <= a-1; i++)
            {
                b = a % i ;
               

                if (b == 0)
                {
                    Console.WriteLine("该数不为质数");
                    break;
                }
                else if(i>(a/2))
                {
                    Console.WriteLine("该数是质数");
                    break;
                    
                }
               
            }
           
        }
        static void Main(string[] args)
        {
            Program program = new Program();
            while(true)
            {
                Console.WriteLine("请输入一个数");
                int d = Convert.ToInt32(Console.ReadLine());
                program.zhishu(d);
            }
           
        }
    }
}

运行起来的结果如下,我们这个方法有个bug那就是不能判断2,但是2一眼就看出来我们就没有再解决这个问题,如果有更好的方法,和错误欢迎指出,这也只是我个人的想法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值