注册 登录
编程论坛 C++教室

输出前20个素数的c++

zhanglipeng 发布于 2011-04-12 21:11, 422 次点击
急求
2 回复
#2
ucyan2011-04-12 22:21
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    int a, t, leap;
    cout<< "输入一个数:" <<endl;
    cin>> a;
    for (int k = 1; k <=a ;k++)
    {
        t = sqrt(k);
        for (int i = 2; i <= t; i++)
        {
            if (k % i == 0)
            {
               leap = 0;
               break;
            }
            else
                leap = 1;
        }
        if (leap == 1)
            cout<< k << "是素数" <<endl;
        else if (leap == 0)
            cout<< k << "不是素数" <<endl;
    }
    return 0;
}
#3
yuccn2011-04-12 22:25
BOOL IsPrime(int n)
{
    if (n < 2) {
       return FALSE;
    }
    int nMid = n / 2; // 这个改成n的平方根也可以。
    for (int i = 2; i <= nMid; i++) {
        if (n % i == 0) {
            return FALSE;
        }
    }

    return TRUE;
}
void main()
{
    int nCount = 0;
    int nNum = 2;

   while (TRUE) {
       if (IsPrime(nNum)) {
          nCount++;
          cout<<"第"<<nCount<<"个素数:"<<nNum<<endl;
       }
       if (nCount == 20) break;      
   }   
}

没有测试过,测试工作就交给楼主你了 呵呵
1