给出N个正整数,检测每个数是否为质数。如果是,输出"Yes",否则输出"No"。

#include<stdio.h>
#include<math.h>
int zshu(int x)//判断x是不是素数。zshu代表素数,即质数。
 {
  int i;
  i=2;
         if(x==2)//x是素数 。
         return 1;
         else if(x==1)//x不是素数 。
                  return 0;
         else
     {
          while(i<x)
        {
             if(x%i==0)
        {
         break;
        return 0;//x不是素数 。
       }
            i++;
     if(i>=x)
     return 1;//x是素数 。  
   } 
  }
      
 }
    int main()//主函数。
    {
  int N;//N一个正整数N。
  scanf("%d",&N);
  int a[1000];//定义数组,便于储存N个数。
  int j;
   for(j=0;j<N;j++)
         scanf("%d",&a[j]);
       for(j=0;j<N;j++)
     {
       if(zshu(a[j])==1)
      printf("Yes\n");//是素数。
      if(zshu(a[j])==0)
      printf("No\n");//不是素数。
        }   
 }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 是的,当n为素数时,输出yes”,否则输出“no”。好的,以下是中文回答: 您好!若输入一个正整数n,判断n是否是素数,若n是素数,则输出yes”,否则输出“no”。 判断n是否是素数的方法可以是试除法,即从2开始到n-1逐个判断n是否能够被整除。若n能被2到n-1中的任意一个数整除,则n不是素数,否则n是素数。 以下是Python代码实现: ```python n = int(input("请输入一个正整数n:")) if n < 2: print("no") else: for i in range(2, n): if n % i == 0: print("no") break else: print("yes") ``` 希望能对您有所帮助! ### 回答2: 判断一个正整数是否是素数,需要先了解什么是素数。素数又叫质数,指除了1和它本身以外,没有其它正因数的自然数。比如2、3、5、7等就是素数。而4、6、8、9等就不是素数。 判断一个正整数n是否是素数,可以使用以下方法: 1. 将n分别除以2到n-1之间的每个数,如果都不能被整除,那么n就是素数。因为如果n可以被2到n-1的某个数整除,则这个数就是n的一个因数,说明n不是质数。 2. 对于n,如果它的因子x和y都大于√n,那么x*y>n。因此,只要检查2到√n之间的所有可能因子即可。如果n不能被2到√n之间的任何一个整数整除,那么n就是质数。 下面是Python代码实现: ```python import math def is_prime(n): if n <= 1: return False for i in range(2, int(math.sqrt(n))+1): if n % i == 0: return False return True n = int(input("请输入一个正整数:")) if is_prime(n): print("yes") else: print("no") ``` 首先,判断n是否小于等于1,如果是,则直接返回False,因为1以下的数都不是素数。 接着,使用for循环遍历2到√n之间的每个数,看能否被n整除。如果能,说明n不是素数,直接返回False。如果循环结束后都没能被整除,说明n是素数,返回True。 最后,调用is_prime()函数判断输入正整数n是否是素数。如果是,输出"yes",否则输出"no"。 ### 回答3: 素数指的是只能被1和它本身整除的正整数,如2、3、5、7、11、13等。判断一个正整数n是否是素数,一般采用试除法。 试除法:对于一个待判定的正整数n,从2开始逐一尝试能否被整除。如果发现一个比1大且小于n的整数m能够整除n,则n不是素数;如果所有比1大且小于n的整数均不能整除n,则n是素数。 例如,对于待判定的正整数n=17,从2开始逐一进行试除,发现它既不能被2、3、4、5、6、7、8、9、10、11、12、13、14、15、16整除,那么n=17就是素数。 将上述算法转化为程序,如下: 若输入n为1,则输出 "no"。 若输入n是2,则输出 "yes",2是素数。 若输入n是大于2的偶数,则输出 "no",因为偶数除2外一定还能整除其他偶数。 接下来,从3开始,逐一判断n是否能被从3到它的平方根的所有奇数整除。若可以整除,则输出 "no",n不是素数。 若循环结束后,n仍未被整除,则输出 "yes",n是素数。 代码如下: ``` import math # 导入math库,用于计算平方根 n = int(input("请输入一个正整数:")) # 获取输入正整数n if n == 1: # 若n=1,则不是素数 print("no") elif n == 2: # 若n=2,则是素数 print("yes") elif n % 2 == 0: # 若n是大于2的偶数,则不是素数 print("no") else: # 若n是大于2的奇数 for i in range(3, int(math.sqrt(n))+1, 2): # 从3开始逐一判断 if n % i == 0: # 若n能被i整除,则不是素数 print("no") break else: # 若循环结束后,n仍未被整除,则是素数 print("yes") ``` 使用这个程序,可以方便地判断一个正整数是否是素数。同时,也可以帮助我们深入理解试除法的原理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值