找出素数
时间: 1ms 内存:128M
描述:
输入若干个正整数,将其中的素数输出来。
请在下面的代码基础上完成本题,只提交你编写的部分
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n);
int main( )
{
int n;
while(cin>>n)
{
if(isPrime(n))
cout<<n<<endl;
}
return 0;
}
//下面实现isPrime函数,其功能是判断n是否是素数。
//若是素数,返回true,否则,返回false
输入:
个数不确定的正整数
输出:
输入数据中的素数,一数一行,保持原来的顺序
示例输入:
83 5 12 363 137 307 31 87 126 490 300 358 28 239 286 69 25 94 7 336
示例输出:
83
5
137
307
31
239
7
提示:
参考答案(内存最优[1032]):
#include <stdio.h>
int is_prime( int n )
{
int i;
if( n < 2 )
return 0;
for( i=2;i<n;i++ )
if ( n % i==0 )
return 0;
return 1;
}
int main()
{
int n;
while( scanf("%d", &n)==1 && n>0 )
{
if ( is_prime( n ) )
printf("%d\n", n );
}
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int n);
int main( )
{
int n;
while(cin>>n)
{
if(isPrime(n))
cout<<n<<endl;
}
return 0;
}
bool isPrime(int n)
{
bool prime=true;
int k=int(sqrt(n));
for(int i=2;i<=k;i++)
{
if(n%i==0)
{
prime=false;
break;
}
}
return prime;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。