定义一个函数,判断一个整数是否为素数,使用如下函数头:bool Is_prime(int num) ,如果num是素数函数返回true,否则返回false。
定义另一个函数Print,函数有一个参数n,类型为整形,打印小于等于n的所有素数,当用户没有指定n的值时,默认打印100以内的所有素数。
主函数中,提示用户输入一个整数n,当用户输入n大于0时,先调用Print,然后继续提示用户输入一个整数n;直到用户输入0时,退出程序。
哪一步搞不定啊?
输入条件里没有说输入的n如果小于0时如何处理
#include <iostream>
using namespace std;
bool Is_prime(int num)
{
if(num<2)
return false;
for(int i=2;i*i<=num;i++)
if(num%i==0)
return false;
return true;
}
void Print(int n)
{
for(int i=2;i<=n;i++)
if(Is_prime(i))
cout<<i<<endl;
}
int main()
{
提示用户输入一个整数n,当用户输入n大于0时,先调用Print,然后继续提示用户输入一个整数n;直到用户输入0时,退出程序
int n;
cout<<"请输入一个整数:";
cin>>n;
while(n!=0)
{
if(n>0)
Print(n);
cout<<"请继续输入一个整数:");
cin>>n;
}
return 0;
}
#include <iostream>
#include <cmath>
using namespace std;
bool Is_prime(int num)
{
if (num < 2)
return false;
int n = static_cast<int>(sqrt(num));
for (int i = 2; i <= n; i++)
if (num % i == 0)
return false;
return true;
}
void Print(int n = 100)
{
for (int i = 2; i <= n; i++)
if (Is_prime(i))
cout << i << ' ';
cout << endl;
}
int main()
{
int n;
while (1)
{
cout << "Input: ";
if (cin >> n)
{
if (n == 0)
break;
if (n > 0)
Print(n);
}
else
{
break;
}
}
return 0;
}