10.26-东塘404-J1R

· · 个人记录

新知识

//算术基本定理
//对于任意一个正整数n=p1*p2*...*pk,其中pi均为质数。
//简单来说对于任意一个正整数,都能将其拆分成若干个质数的乘积,如果固定因数从小到大排列,这样的分解方式是唯一的。
//可以简化成以下形式:n=pe1 1*pe2 2*...*pei i(pi<pi+1)
//分解质因子(O平方根n):
for(int i=2;i<=n;i++){
  while(n%i==0){
    cout<<i<<" ";
    n/=i;
  }
}
if(n>1)cout<<n<<" ";

P1075 [NOIP 2012 普及组] 质因数分解

思路

先创建一个n,输入n再来个for循环,里面来个if判断:if(n&i==0){cout<<n/i;return 0;}

代码:

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

B3715 分解质因子 2

思路

先定一个t,输入t再来一个while循环:while(t--)因为题目说啦本题单测试点内有多组测试数据,所以要搞个搞多组测试样例,然后搞个分解因子的代码,记住还要有一个cout<<endl;

代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int t;
int main(){
    cin>>t;
    while(t--){
        ll n;
        cin>>n;
        for(int i=2;i<=n/i;i++){
            while(n%i==0){
                cout<<i<<" ";
                n/=i;
            }
        }
        if(n>1)cout<<n<<" ";
        cout<<endl;
    }
    return 0;   
}

P9063 [yLOI2023] 分解只因数

思路

先定一个t,在输入t,然后while(t--)因为题目说了本题单测试点内有多组测试数据,再建一个n,输入n,最后判断:if(n%2==0){ cout<<"No"<<endl; }else{ cout<<"Yes"<<endl; }

代码

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll t;
int main(){
    cin>>t;
    while(t--){
        ll n;
        cin>>n;
       if(n%2==0){
            cout<<"No"<<endl;
         }else{
             cout<<"Yes"<<endl;
         }
    }
    return 0;
}