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

很简单的一个求素数的函数,但是我的c++就是不显示结果,求教

坤坤1314 发布于 2018-04-20 21:28, 1393 次点击
#include <iostream>
#include <math.h>
using namespace std;

int main(int argc,int *argv[])
{
    int a,b,i,j;
    cout<<"输如最小数值:";
    cin>>a;
    cout<<"输出最大数值:";
    cin>>b;
    for(i=a;i<=b;i++)
    {
        for(j=2;j<=sqrt(i);j++)
            if(i%j==0)
            break;
        if(j>=sqrt(i)+1)
            cout<<i;
    }
    return 0;
}
4 回复
#2
Jonny02012018-04-20 21:37
你对素数的理解是不是有错误
素数怎么会用到 sqrt()?
#include <iostream>

using namespace std;
int main(int argc, char *argv[]) {
    int minNumber, maxNumber;
    cout << "请输入最小数字 : ";
    cin >> minNumber;
    cout << "请输入最大数字 : ";
    cin >> maxNumber;
    for(auto i {minNumber}; i <= maxNumber; ++i) {
        bool flag {true};
        for(auto j {2}; j < i; ++j) {
            if(i % j == 0) {
                flag = false;
                break;
            }
        }
        if(flag) {
            cout << i << endl;
        }
    }
}
#3
kunkun13142018-04-21 18:00
sqrt不是开方函数吗,我就不用加到原数了,直接加到这个数的开方不就可以啦??
#4
李昊逸Lion2018-04-22 17:04
sqrt很慢,建议改成j*j<=i
#5
纯帅de肥猪2018-04-23 17:54
编译器是什么?有的编译器要在 最后加getChar()函数的,
1