天梯赛L1-028 判断素数

发布时间 2023-05-04 19:32:31作者: 我爱软工

一、问题描述

本题的目标很简单,就是判断一个给定的正整数是否素数。

输入格式:

输入在第一行给出一个正整数N≤ 10),随后N行,每行给出一个小于231的需要判断的正整数。

输出格式:

对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No

输入样例:

2
11
111
 

输出样例:

Yes
No

二、设计思路

(1)从键盘输入数字的个数n;

(2)循环n次,接收n个数;

(3)设计判断素数的函数,如果是,返回true,对应输出YES,否则输出NO;

三、程序流程图

 

四、伪代码

五、代码

 1 #include <iostream>
 2 using namespace std;
 3 #include <math.h>
 4 bool isPrime(int m)
 5 {
 6     if (m == 0 || m == 1)
 7     {
 8         return false;
 9     }
10     for (int i = 2; i<=sqrt(m); i++)
11     {
12 
13         if (m % i == 0)
14         {
15             return false;
16         }
17     }
18     return true;
19 }
20 int main()
21 {
22     int a[10] = { 0 };
23     int n = 0;
24     cin >> n;
25     for (int i = 0; i < n; i++)
26     {
27         cin >> a[i];
28         if (isPrime(a[i]))
29         {
30             cout << "YES" << endl;
31         }
32         else
33         {
34             cout << "NO" << endl;
35         }
36     }
37     return 0;
38 }

 

六、总结

(1)判断是否为素数的函数可以用布尔数据类型,是则true,不是则false;

(2)math.h的头文件中包含求n次方,开根号等操作;

(3)开根号sqrt(n);