初学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 }