文章

34

粉丝

0

获赞

84

访问

2.4k

头像
素数判定 题解:
P1102 兰州大学机试题
发布于2026年2月8日 16:11
阅读数 124

#include<bits/stdc++.h>

using namespace std;

const int N = 1010;
int prime[N];//0表示是质数,1表示是合数
void getPrime(){
    memset(prime,0,sizeof(prime));
    for(int i = 2; i < N; i++){
        if(!prime[i]) prime[++prime[0]] = i;//如果是质数,就把计数加一,并加入数组
        for(int j = 1; j <= prime[0] && prime[j] * i <= N; j++){
            prime[prime[j]*i] = 1;//把i与所有质数相乘的结果标记为合数
            if(i % prime[j] == 0) break;//如果i的最小质数已找到就是prime[j],就不要再将i和后面的质数相乘了
        }
    }
}


int main(){
    int a,b;
    while(cin>>a>>b){
        if(a>b) swap(a,b);
        int ans = 0;
        getPrime();
  ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发