首页 > 其他分享 >质数-暴力优化然后通过

质数-暴力优化然后通过

时间:2022-10-06 00:00:11浏览次数:47  
标签:暴力 int 质数 cin -- flag include 优化

暴力方法

#include <cstdio>
#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int b;
    int a;
    cin>>a;
    
    ///暴力方法证明失败就是找除1和其自身的值之外 有没有有一个数满足不符合质数的定义的(就是有一个数能使得他被整除)
    while(a--) {
        int flag=0;
        cin >> b;
        for (int i = b - 1; i > 1; i--) {
            if (b % i == 0) {
                flag = 1;//用flag打标记然后最后将标机判断的方法是更好的,以免出现多次输出相同值的情况
                //cout << b << " is not prime" << endl;
                break;//一旦找到一个就直接break掉 就不在空号时间在上面;
            }
        
        if(flag==1)cout<<b<<" is not prime"<<endl;
        else cout<<b<<" is prime"<<endl;
    }
    return 0;
}

image

对于这种问题,我猜测可能是因为都是从大数开始除的,所以我们就让for循环从小数开始找

#include <cstdio>
#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int b;
    int a;
    cin>>a;
    while(a--) {
        int flag=0;
        cin >> b;
        for (int i = 2; i <b-1; i++) {//从小数开始计算就很快
            if (b % i == 0) {
                flag = 1;//用flag打标记然后最后将标机判断的方法是更好的,以免出现多次输出相同值的情况
                //cout << b << " is not prime" << endl;
                break;
            }
        }
        if(flag==1)cout<<b<<" is not prime"<<endl;
        else cout<<b<<" is prime"<<endl;
    }
    return 0;
}

对于这样的情况就没有问题了
就可以解决100个大数的情况了
image

标签:暴力,int,质数,cin,--,flag,include,优化
From: https://www.cnblogs.com/E-Sheep/p/16756825.html

相关文章