新手求帮忙,如何把这个c++程序改为while和do while型

请问如何把这个程序改成while和do while型。
我试过好多次,要么编译直接错误,要么运行后无限输出2是素数或无限输出3是素数。
实在很急,要交作业的,求帮忙,谢谢图片

using namespace std;

int main()
{
int num=2;
int i=2;
bool isprime=true;
while(num<=100)
{
isprime=true;
i=2;
while(i <= num-1)
{
if(num % i == 0)
{
isprime=false;
break;
}
i++;
}
if(isprime)
cout<<num<<"是素数"<<endl;
else
cout<<num<<"不是素数"<<endl;

            num++;
    }

    return 0;

}

把代码块放进do while就好了啊

你需要完成的题目是什么?

你的逻辑有点问题啊?

这是我自己写的,能运行但是不对图片

public class test{
public static void main(String[] args){
int num=2;
while(num<=100){
int a=num/2;
while(a>=1){
if(num%a==0&&a!=1){
System.out.println(number+"不是素数");
break;
}
if(a==1){
System.out.println(number+"是素数");
}
a--;
}
number++
}
}
}

图片说明
自己写的能运行,你试试。

#include

using namespace std;

int main()
{
int number = 1;
int i;
bool isPrime;
while(number++ < 100) {
isPrime = true;
i = 2;
while(i <= number - 1) {
if(number % i == 0) {
isPrime = false;
break;
}
i++;
}
if(isPrime) {
cout<<number<<" is a prime number"<<endl;
}
else {
cout<<number<<" is not a prime number"<<endl;
}
}
return 0;
}