10.19上午-东塘404-J1R

· · 个人记录

新知识

//约数:如果a能整除b,既满足a%b==0那么就称b是a的一个约数。(补充:因数和约数是一个概念)
//约数:如果a能整除b,那么就称a是b的一个倍数。
//质数:除了1和它本身以外没有其他的因数。
//合数:除了1和他本身以外还有其他的因数。

//判断质数因数:
long long is_prime(long long n){
  if(n<=1){
    return 0;
  }
  for(long long i=2;i<=/i;i++){
    if(n%i==0){
      return 0;
    }
  }
  return 1;
}

P5736 【深基7.例2】质数筛

思路

先创建一个判断质数因数的函数:long long is_prime(long long n){ if(n<=1){ return 0; } for(long long i=2;i<=n;i++){ if(n%i==0){ return 0; } } return 1; } 然后创建一个a[i]数组,再创建一个变量n,然后输入n,再用for循环输入a[i]。最后用一个for循环中来个if判断,判断a[i]中的质数因数,最后cout<<a[i]<<" ";

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll is_prime(ll n){
    if(n<=1){
        return 0;
    }
    for(ll i=2;i<=n/i;i++){
        if(n%i==0){
            return 0;
        }
    }
    return 1;
}
const int N=1e5+5;
int a[N];
int n;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    } 
    for(int i=1;i<=n;i++){
        if(is_prime(a[i])){
            cout<<a[i]<<" ";
        }
    }
    return 0;
}

B2137 判决素数个数

思路

先创一个判断指质数因数的函数,在创建x,y和一个存东西的ans,然后输入x和y,再来个特判,然后来个for循环中写一个if判断,判断i中的质数和因数,再ans++,最后输出ans。

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll is_prime(ll n){
    if(n<=1){
        return 0;
    }
    for(ll i=2;i<=n/i;i++){
        if(n%i==0){
            return 0;
        }
    }
    return 1;
}
int x,y;
int ans;
int main(){
    cin>>x>>y;
    if(x>y){
        int c=x;
        x=y;
        y=c;
    }
    for(int i=x;i<=y;i++){
        if(is_prime(i)){
            ans++;
        }
    }
    cout<<ans;
    return 0;
}