首页 留言 登录
例6.7写一个是否是素数的函数
#include <bits/stdc++.h> 
using namespace std;

int prime(int x){
    if(x<=1) return 0;
    if(x==2) return 1;
    int j=2;

    while(j*j<x && x%j!=0) { 
        j++; 
//        cout << j << endl;
    }

    if(x%j==0){
        return 0;
    }else{
        return 1;
    }
    //上面的ifelse语句,可以直接简写
//    return (x%y!=0) ;
}


int main(){
    cout << prime(17)  << endl;
    return 0;
}
int prime2(int x) {
    // 处理边界情况
    if (x <= 1) return 0;  // 0和1不是素数
    if (x == 2) return 1;  // 2是素数
    if (x % 2 == 0) return 0;  // 大于2的偶数不是素数

    //    int limit = sqrt(x);
    // 只检查奇数因子,从3开始,每次+2
    for (int j = 3; j*j<=x; j += 2) {
        if (x % j == 0) {
            return 0;  // 找到因子,不是素数
        }
    }

    return 1;  // 没找到因子,是素数
}
上一篇:递推-斐波那契数列
下一篇:bubble冒泡排序,从大往小排函数
验证码
评论留言 (0条)