初学C++,打算用博客记录学习的足迹。写了两个求质数的程序,修修改改。

 1 #include <iostream>
 2 #include <math.h>
 3 using namespace std;
 4 int main(){
 5     int m, n, k, i, j, h;
 6     n = 0;  //n不应该定义在外循环内,否则无法实现换行作用
 7     cin >> m;
 8     //开始时我将k定义在循环体外,导致结果失败,因为每个内循环结束后k值会发生改变,需要在外循环中重复定义
 9     for (i = 1; i <= m ; i++)
10     {
11         k = 1;      //也可设置布尔类型,k值的作用与布尔数相同    
12         h = sqrt(i);
13         for (j = 2; j <= h; j++)
14         {
15             if (i%j == 0)
16             {
17                 k = 0;
18                 break;
19             }
20         }            //break应用在内循环的位置,第一次内循环包括了if(k)的语句,导致打印不到东西
21             if(k)
22             {
23                 cout << i << " ";
24                 n += 1;
25                 if (n % 10 == 0)
26                     cout << endl;
27             }
28
29     }
30     system("pause");
31     return 0;
32 }
 1 #include <iostream>
 2 #include <math.h>
 3 using namespace std;
 4 int minum, maxnum;
 5 int i, j, k;
 6 int main() {
 7     int count = 0;
 8     cout << "请输入两个数:" << endl;
 9     cin >> minum >> maxnum;
10     for(i=minum;i<=maxnum;i++){
11         k = sqrt(i);
12         for (j = 2; j <= k; j++) {
13             if (i%j == 0)
14                 break;
15         }
16         if (j >= k + 1)    //判断i是否为素数的条件
17         {
18             cout << i << " ";
19             count++;
20             if (count % 10 == 0)
21                 cout << endl;
22         }
23     }
24     system("pause");
25     return 0;
26 }
01-15 09:53