I Older Brother(质因子分解)

2023-12-02 23:18
文章标签 分解 因子 brother older

本文主要是介绍I Older Brother(质因子分解),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目
在这里插入图片描述
在这里插入图片描述
题意:q=p^k(p为素数,k>=1)问是否能找到这样的p素数;
思路:1.基本方法:数据是1e9;时间是1s,1s最多跑3e8;
优化一下若是素数直接输出yes;否则利用素数筛把所有的素数存放起来,暴力试探是否q=p^k;
2.质因子分解定理(算数基本定理):任何一个大于 1 的整数都能唯一分解为有限个质数的乘积。

AC代码
1

#include <bits/stdc++.h>using namespace std;
#define ll long long
const int maxn=1e6+11;//不能触及到边界,否则4这种数据输出no
int prime[maxn];
int vis[maxn];
int top;
void prim()//素数筛法筛选素数
{for(int i=2; i<maxn; i++)vis[i]=1;vis[0]=vis[1]=0;top=0;for(int i=2; i<maxn; i++){if(vis[i]==1){prime[++top]=i;for(int j=2*i; j<maxn; j+=i){vis[j]=0;}}}
}
int judge(int n)//判断素数法
{if(n<=1)return 0;else{for(int i=2; i<=sqrt(n); i++){if(n%i==0)return 0;}}return 1;
}
int main()
{prim();int n,ans;cin>>n;if(n==1)cout<<"no"<<endl;else{if(judge(n)==1)cout<<"yes"<<endl;else{for(int i=1; i<=top; i++){ans=1;//初始化while(ans<n){ans=ans*prime[i];}if(ans==n){break;}}if(ans==n)cout<<"yes"<<endl;elsecout<<"no"<<endl;}}return 0;
}

2

#include <bits/stdc++.h>using namespace std;
set<int>s;//set作为一个容器用来存储同一数据类型的数据类型,自动排序,去重;
int main()
{int x,q;cin>>x;q=x;for(int i=2; i<=sqrt(q); i++)//质因子分解定理{while(x%i==0){s.insert(i);x=x/i;}}if(x!=1)s.insert(x);//很关键的一步,例如37if(s.size()==1)cout<<"yes"<<endl;elsecout<<"no"<<endl;return 0;
}

这篇关于I Older Brother(质因子分解)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/447213

相关文章

线性因子模型 - 独立分量分析(ICA)篇

序言 线性因子模型是数据分析与机器学习中的一类重要模型,它们通过引入潜变量( latent variables \text{latent variables} latent variables)来更好地表征数据。其中,独立分量分析( ICA \text{ICA} ICA)作为线性因子模型的一种,以其独特的视角和广泛的应用领域而备受关注。 ICA \text{ICA} ICA旨在将观察到的复杂信号

特征值分解(EVD)和奇异值分解(SVD)—应用于图片压缩

特征值分解(EVD)和奇异值分解(SVD)—应用于图片压缩 目录 前言 一、特征值分解 二、应用特征值分解对图片进行压缩 三、矩阵的奇异值分解 四、应用奇异值分解对图片进行压缩 五、MATLAB仿真代码 前言         学习了特征值分解和奇异值分解相关知识,发现其可以用于图片压缩,但网上没有找到相应代码,本文在学习了之后编写出了图片压缩的代码,发现奇异值分

HDU2521(求因子个数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2521 解题思路: 数据量不大,直接O(n)遍历,对每个数求其因子个数,找出最大的即可。 完整代码: #include <functional>#include <algorithm>#include <iostream>#include <fstream>#includ

连分数因子分解法——C语言实现

参考网址:连分数分解法寻找整数的因子(Python)-CSDN博客 大数运算:C语言实现 大数运算 加减乘除模运算 超详细_64编程 加减乘除取模 复杂运算-CSDN博客 ‌连分数因子分解法‌是一种用于大整数因子分解的算法,它是计算数论中的一个重要方法。连分数因子分解法通过寻找x2≡y2 (mod p)x2≡y2 (mod p)的形式来分解N。具体来说,这种方法涉及到计算N的简单连分数展开,并

时序预测|变分模态分解-双向时域卷积-双向门控单元-注意力机制多变量时间序列预测VMD-BiTCN-BiGRU-Attention

时序预测|变分模态分解-双向时域卷积-双向门控单元-注意力机制多变量时间序列预测VMD-BiTCN-BiGRU-Attention 文章目录 一、基本原理1. 变分模态分解(VMD)2. 双向时域卷积(BiTCN)3. 双向门控单元(BiGRU)4. 注意力机制(Attention)总结流程 二、实验结果三、核心代码四、代码获取五、总结 时序预测|变分模态分解-双向时域卷积

js算法题,给任意一个偶数,找出他的所有的质数因子

/*给任意一个偶数,找出他的所有的质数因子*/ function primeFactor(n){     var factors=[],            divistor=2;     if(typeof n !=='number'||!Number.isInteger(n)){          return 0;     }; //如果不是偶数返回0,如果是0,返回0

《机器学习》 基于SVD的矩阵分解 推导、案例实现

目录 一、SVD奇异值分解 1、什么是SVD 2、SVD的应用         1)数据降维         2)推荐算法         3)自然语言处理 3、核心         1)什么是酉矩阵         2)什么是对角矩阵 4、分解过程 二、推导 1、如何求解这三个矩阵         1)已知:          2)根据酉矩阵的特点即可得出:

素数判定和分解质素数

1.素数判定   public static boolean isPrime(int n) {if (n <= 1) return false;if (n == 2) return true;if (n % 2 == 0) return false;int limit = (int)Math.sqrt(n) + 1;for (int i = 3; i <= limit; i += 2) {i

等式(数论/唯一分解定理)

链接: https://www.nowcoder.com/acm/contest/90/F 来源:牛客网 题目描述 给定n,求1/x + 1/y = 1/n (x<=y)的解数。(x、y、n均为正整数) 输入描述: 在第一行输入一个正整数T。接下来有T行,每行输入一个正整数n,请求出符合该方程要求的解数。(1<=n<=1e9) 输出描述: 输出符合该方程要求的解数。

【SGU】113. Nearly prime numbers 合数分解

传送门:【SGU】113. Nearly prime numbers 题目分析:O(sqrt(N))。。 代码如下: #include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std ;#define rep( i , a , b ) for