#include <iostream> using namespace std; int main() { int a=0 , div=2 , flag=1 , c ; cout << "请输入一个正整数" << endl ; cin >> a; while ( a > 0 ) { a++; while ( div <= (a+1)/2 ) { c = a%div; if ( c == 0 ) { flag = 0; break; } div++;
时间: 2024-03-31 11:38:28 浏览: 66
这是一个判断输入正整数是否为质数的C++代码。程序中的变量 `a` 存储输入的正整数,变量 `div` 存储除数的值,变量 `flag` 存储是否为质数的标志,变量 `c` 存储余数。程序使用了两层嵌套的 while 循环,外层循环不断增加输入的正整数的值,直到找到一个质数为止。内层循环从 `2` 开始,依次判断输入的正整数是否能被 `2` 到 `(a+1)/2` 之间的整数整除,如果能整除,则将 `flag` 标志设置为 `0`,并跳出循环,因为已经可以确定这不是一个质数。
需要注意的是,这个程序中的嵌套循环效率较低,如果输入的正整数很大,程序的运行时间可能会非常长。可以通过改变判断质数的方法来提高程序的效率。
阅读全文