首页 > 其他分享 >试除法判定质数

试除法判定质数

时间:2023-08-08 12:56:40浏览次数:36  
标签:除法 质数 long 遍历 判定 include ll

其实质数也就是素数,这题比较简单,注意ai的数据类型为long long,和输入输出格式就欧克了,我就不详细解释了

直接上代码

#include <iostream>
#include <algorithm>

using namespace std;
typedef long long ll;

const int N = 1e3 + 4;

ll f(ll x)
{
	ll j;
	if (x == 1 || x == 0)  return 0; // 排除1和0的情况
	for (j = 2; j <=sqrt(x); j++) 
//不需要遍历到x,因为任何一个数都不可能分解成两个大于其平方根的数的乘积.肯定只能分解为一个大于或等于其平方根,另一个小于或等于其平方根.
	{
		if (x % j == 0) {
			return 0; //如果不是质数返回0,结束函数;
		}
	}
	return 1; //是质数就返回1;
}
int main()
{
	ll n, i, x;
	int k[N];
	scanf("%lld", &n);
	for (i = 0; i < n; i++) {
		scanf("%lld", &x);
		k[i] = f(x); //存结果
	}

	for (i = 0; i < n; i++)
	{
		if (k[i] == 1) printf("Yes\n");
		else printf("No\n");
	}
	return 0;
}

关于为什么只需要遍历到一个数的平方根,因为如果一个数不是质数是合数, 那么一定可以由两个自然数相乘得到,因子是成对出现的,就以64为例子,如果8之前就有因子,那么不是质数,后面就没有必要遍历了(x=9的话就81了).

本人蒟蒻,若有错误或不恰当的地方还望指出,感谢观看我的博客。

标签:除法,质数,long,遍历,判定,include,ll
From: https://www.cnblogs.com/expect-999/p/17613879.html

相关文章

  • 面试题 01.02. 判定是否互为字符重排
    给定两个由小写字母组成的字符串s1和s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。示例1:输入:s1="abc",s2="bca"输出:true示例2:输入:s1="abc",s2="bad"输出:falseclassSolution{publicbooleanCheckPermutation(S......
  • LA@AM@向量间的关系@垂直@平行@共面判定@混合积
    ......
  • 销售需求丨多列判定筛选(三)
    哈喽,小伙伴们,大家好啊~本期呢,咱们来继续研究多列判定筛选。可能有的小伙伴说了,咦?这个话题不是之前已经说过两期了么?怎么这次还继续呢?严格来说,这个话题虽然说了两期了,但是还没结束,因为延伸出来的东西比较多。话不多说,数据图如下:依然采用之前的案例数据。需求还是一如既往:根据每个人......
  • LeetCode 399. 除法求值
    classSolution{public:vector<double>calcEquation(vector<vector<string>>&equations,vector<double>&values,vector<vector<string>>&queries){unordered_set<string>node;//记录所有节点......
  • 求10以内的质数
    #求10以内的质数只能被自己和本身整除#2除以1是2余数是0#2除以2是1余数是0#4不是质数因为4/2等于2能被2整除#9不是质数9%3==0能被3整除list_ob=[1,]fornuminrange(2,10):flag=True#是质数吗?#先判断某个数比如4是否是质数,4需要除以整个......
  • 质数和约数
    第一部分质数的判定试除法思想:要检验一个数字\(n\)是否为质数,将\(n\)除以\(1\sim\sqrtn\),如果有一个数字刚好整除\(n\),那么\(n\)为合数,否则\(n\)为奇数。代码:boolprime(intx){if(x<2)returnfalse; for(inti=2;i<=x/i;i++){ if(x%......
  • 总监面(高级或架构):如何找到缓慢代码并判定代码执行效率,以及优化它的思路
    1、先使用一些集成测试插件(比如jmeter、metershpere)或者脚本定位到慢速接口,也可以通过日志分析cat|grep2、使用sonar、findbugs之类的插件定位复杂度较高的代码,(分析一下算法复杂度和空间复杂度)以及sql调用部分的代码3、先将调用的sql放到mysql上运行一遍,观测执行速度,如果存在......
  • 求质数:204. 计数质数
    https://leetcode.cn/problems/count-primes/204给定整数n,返回所有小于非负整数n的质数的数量。示例1:输入:n=10输出:4解释:小于10的质数一共有4个,它们是2,3,5,7。这题如果用对每个数i,让j从2遍历至sqrt(i)是否存在j,使得i%j==0(被j整除),是最容易的想到的,......
  • riscv处理器——除法运算实现
    采用试商法实现除法运算,试商法的计算过程如下:1.每次除法运算至少需要33个时钟周期才能完成,用状态机来实现;2.主要需要判断并执行的指令有4种类:1wireop_div=(op_r==`INST_DIV);//有符号除法,结果为商2wireop_divu=(op_r==`INST_DIVU);//无符号除法,结果为商3wire......
  • LeetCode/和等于目标值的质数对
    给你一个整数n,如果两个整数x和y满足下述条件,则认为二者形成一个质数对:1<=x<=y<=nx+y==nx和y都是质数请你以二维有序列表的形式返回符合题目要求的所有[xi,yi],列表需要按xi的非递减顺序排序。如果不存在符合要求的质数对,则返回一个空数组。1.埃氏筛预......