素数的定义
素数是一个数学概念,定义如下:
质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数(规定1既不是质数也不是合数)。
那么,如何使用C++语言的函数 ,求解呢?
知识点
- 一个正整数n的因子对,一定可以在2~sqrt(n)的范围内求解完毕。
- 如果n找到因子,就可以停止循环。
案例
题目描述
任意输入一个整数,判断它是否为素数。是的话输出"T",不是的话输出"F"。
输入
输入只有一行,包括1个整数。
样例输入
57
输出
输出只有一行。
样例输出
F
程序代码
#include <bits/stdc++.h>
using namespace std;
int main(){
/*
素数(质数):大于1的自然数中,如果该数除了1和自己以外没有其他因子
就是素数,如:2,3,5,7,11,13,17,19,23...
判断素数的思路:求出n的因子个数(不含1和n),如果因子个数为0就是素数
解法优化:1,一个正整数n的因子对,一定可以在2~sqrt(n)的范围内求解完毕
2,如果n找到因子,就可以停止循环
*/
int n,i,c = 0;
cin >> n;
// 循换n的因子范围
for(i = 2 ; i <= sqrt(n) ; i++){
// 如果i是n的因子,则计数器自增
if(n % i == 0){
c++;
break; // 只要有因子就不是素数
}
}
// 如果n除了1和自己以外没有因子
if(c == 0 && n > 1){
cout << "T" << endl;
}else{
cout << "F" << endl;
}
}