找出素数

找出素数

时间: 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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注