如何判断一个数是否为质数

一、题目描述

判断一个整数是否为质数,如果是质数,输出“Yes",否则输出”No"。

二、质数的定义

质数(英文名:Primenumber)又称素数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)

三、判断质数的方法

由质数定义可知,当一个数n从2到n-1都没有一个数能够被其整除时,该数n为质数,所以我们可以写一个循环。

#include<iostream>
using namespace std;
int main()
{
int n,i;
cin>>n;
for(i=2;i<=n-1;i++)//循环从2到n-1。
   {if(n%i==0)
       {break;
	   }
   }
  if(i<n||n==1)//注意!!1既不是质数也不是合数
    {
		printf("No\n");
	}
	else if(i>=n)
    {
		printf("Yes\n");
	}
    return 0;
}
全部评论
速度可以再优化一下
点赞 回复 分享
发布于 今天 11:46 陕西
不用从n-1开始搜,还可以用milller rabin算大数
点赞 回复 分享
发布于 今天 11:49 山东

相关推荐

今天 11:44
已编辑
地平线_HR
地平线上市啦,市值600亿左右!大家有offer的完全可以考虑。目前市场份额国内双第一,国内自动驾驶认可度非常高。欢迎大家的加入!!!!!!!!
我已成为0offer的糕手:别卡学历,是我不想投?秋招第一份感谢信就你家我也没办法啊
投递地平线等公司10个岗位 >
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务