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

小朋友求帮助~~!

fengao 发布于 2012-11-15 21:32, 336 次点击
   编写一个判断一个数是否为素数的函数int IsPrime(int n),并在主函数中调用它,以实现输出10000以内的所有素数,每行输出10个素数,输出宽度为5,右对齐。
唉,又碰到了完全没思路的题......大神们帮帮小弟吧..
3 回复
#2
w5277050902012-11-15 21:45
不会吧。。。不是完全没思路,是完全没动脑筋吧。。。。
#3
额外覆盖2012-11-15 21:54
若原数为n,设一个数a=(int)sqrt(n),另设一个变量i,for(i=2;i<=a;i++),即a依次除以i取余,如果a%i==0,则n不为素数,否则n为素数。至于n小于10000设置一下n的范围就可以了,调用函数只要将那一段提出另设一个函数就可以了。右对齐用setiosflags(ios::right),宽度用setw()(括号内为你需要的宽度),不过要加头文件iomanip。最后,提问要给分啊,我是看大家同为新手才帮一下罢了,如果有不对的地方见谅啊!
#4
mmmmmmmmmmmm2012-11-16 10:24
供楼主参考哈

程序代码:
#include <iostream>
#include <iomanip>
using namespace std;

int IsPrime(int n);//声明

int main(void)
{
    IsPrime(10000);

    return 0;
}

int IsPrime(int n)
{
    int count=0;
    for (int i=2; i<=n; i++)
    {
        int m=i/2;
        for (int j=2; j<=m; j++)
        {
            if(i%j == 0)
                continue;
        }
        cout.setf(ios::right);    //右对齐
        cout<<setw(5)<<i;        //宽度为5
        count++;
        if (count == 10)        //每行输出10个
        {
            count=0;
            cout<<endl;
        }
    }

    return 0;
}
1