C++判断一个数是不是质数
详见及参考:
https://www.nowcoder.com/practice/b8bb5e7703da4a83ac7754c0f3d45a82?tpId=225&tags=&title=&difficulty=0&judgeStatus=0&rp=0
质数
是只能被1及其本身整除的正整数。例如2是质数:2÷1=2,2÷2=1,即2被1整除是2,2被其本身整除是1。2只能被1及其本身整除,因此它是质数。
判断一个数n
是不是质数,
- 1.首先,任何正整数都能被1及其本身
n
整除,因此将循环范围定在2
到n-1
之间。 - 2.再进一步思考,如果nnn能被一个大于n\sqrt{n}n的数整除,
我们不妨设这个大于n\sqrt{n}n的数为ttt,则nnn也一定能被n/tn/tn/t整除,而n/tn/tn/t是小于n\sqrt{n}n的,所以只需验证输入的数字nnn能否被222 到n\sqrt{n}n之间的任何数整除。
举个例子:
例如n=21n=21n=21,212121能被一个大于21\sqrt{21}21的777即49\sqrt{49}49整除(21÷7=321÷7=321÷7=3),则反过来212121也能被小于21\sqrt{21}21的3即9\sqrt{9}9整除。
因此我们只需要验证输入的数字212121能否被222到$\sqrt{21} $之间的任何数整除即可。
#include <iostream>
using namespace std;bool isPrime(int x){for(int i=2; i*i<=x; i++){if (x % i == 0)return false;}return true;
}int main() {int num;cin >> num;if (isPrime(num)){cout << "是质数" <<endl;}elsecout << "不是质数" <<endl;return 0;
}
#include <iostream>
using namespace std;int main() {int num;cin >> num;bool flag = true; // 必须先初始化flag。若直接bool flag;会报错。for (int i=2; i*i<=num; i++){ //遍历到根号num就可以了if (num % i == 0) { //可以整除,说明num不是质数flag = false;break;}}if (flag)cout << "是质数" <<endl;elsecout << "不是质数" <<endl;return 0;
}
C++判断一个数是不是质数相关推荐
- 微软的判断一个数是不是质数的算法
质数大家都知道概念,质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数.我们最能想到的是进行循环 的除法,下面是微软提供的质数算法. //判断一个数是不是质数 public static ...
- 1,判断一个数是不是质数。 2,选取出100以上、1000以内所有个位数字与十位数字之和被10除所得余数恰好是百位数字的素数(如293).输出上述这些素数的个数及这些素数的和.
对于大于 1 的数,如果除了 1 和它本身,它不能再被其它正整数整除,那么我们说它是一个质数.晓萌想判断一个数是不是质数,希望找你写个程序,帮助她进行判断. 输入格式 输入包括一行,为一个整数 N(1 ...
- 判断 一个数 是不是 质数 / 素数
判断 一个数 是不是 质数 / 素数 [面试必备 100题 系列 ]- 001 - 判断 一个数 是不是 质数 / 素数 一.命题分析: 质数 又称 素数.指整数在一个大于1的 自然数 中,除了1和此 ...
- 判断一个数是质数还是合数
判断一个数是质数还是合数有两种方法 1.用bool函数 #include<bits/stdc++.h> using namespace std; bool is_prime(int n){ ...
- 判断一个数为质数或合数
标题 判断一个数为质数或合数 bool isnum(long long n) {long long j;//若一个数为合数,那么至少可以写成n=j*j;或者为两个自然数,一个大于sqrt(n),一个小 ...
- c语言判断一个数是不是质数的n次方,c语言实践 判断一个数是不是素数
int main() { int input = 0; scanf_s("%d",&input); if (input < 2) { printf("wro ...
- JavaScript判断一个数是不是质数
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
- Python 判断一个数是不是质数
一般我们会这样写 # 判断是不是质数 def isZhi(a):for i in range(2, a):if a % i == 0:return False;else:continue;return ...
- 《c语言入门题目19》判断一个数是不是质数(素数)
前言:(内容仅供分享和参考): 什么是质数: 质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数:否则称为合数(规定1既不是质数也不是合数).=========== ...
最新文章
- android短信发送乱码,解决CEMAPI发送中文短信时会乱码
- android ota 版本校验,OTA升级签名校验简析
- qt ui框架_5个开源Python GUI框架
- VTK:可视化之Glyph3DMapper
- mysql 过程 的函数的区别是什么意思_Mysql中存储过程和函数的区别是什么
- oracle数据同步异常,案例:DataGuard同步异常问题处理记录
- 01Pandas_数据结构
- Virtual Studio 2013 每次加载程序(dll)缓慢的问题
- Frameset导致Cookies和Session丢失的原因及解决办法
- UE4 Light Functions(光源函数)
- (61)UART外设驱动接收驱动(六)(第13天)
- 计算机排名考研,计算机考研学校排名
- matplotlib.pyplot 中文乱码问题解决
- boost::filesystem::directory_iterator() 出现段错误 Sementation fault
- 你这个视频背景太假了?
- 大写1234(大写123456汉字)
- linux ansys172 卸载,基于ANSYS 经典界面的密封垫片的加载-卸载仿真
- physx中ray不碰撞某些物体的方法
- Ingest Node Pipeline Processor
- [ROS] sh脚本文件,source : not found问题