首页 > 其他分享 >1023 - 判断素数

1023 - 判断素数

时间:2024-09-26 22:54:56浏览次数:3  
标签:输出 cnt 判断 1023 int 因数 素数 输入

题目描述

任意输入一个整数,判断它是否为素数。是的话输出 T,不是的话输出 F。
质数(prime number)又称素数,质数定义为在大于 1 的自然数中,除了 1 和它本身以外不再有其他因数。

输入

输入只有一行,包括 1 个整数。( 1≤n≤10^9)

输出

输出只有一行。

样例

输入

57

输出

F

输入

7

输出

T

解题思路1

1)先明确输入输出有几个,这里输入只有1个,是int类型,输出只有一个,是string类型或者char类型都可以
2)分析题意,这里是判断输入的数n是否为素数,需要先知道什么是素数,如果1个数只有1和它本身两个因数那么这个数就是素数,否则就不是
3)我们知道一个数的因数范围是1到它本身,所以只需要判断除了1和它本身以外,如果还有第3个因数那么这个数肯定就不是素数,如果一直都没有找到第3个因数,那么就判断这个数是素数
4)进一步分析,拿到1~n这n个数可以利用for循环实现,可以用一个cnt变量计数,如果循环还没有结束,cnt就已经大于等于3,那就表明不是素数,可以提前结束循环,如果循环正常结束,cnt的值为2,那就表示这个数是素数
注:
a. 这里需要注意最小的素数是2,所以小于等于1的数都不是素数,需要特判一下,可以把cnt改为1
b. 这里要考虑时间复杂度,我们可以发现因数都是成对出现的,所以循环范围可以不到n,到sqrt(n)就可以,每次加2

代码实现

#include <bits/stdc++.h>
using namespace std;

int main(){
	int n,cnt=0;
	cin>>n;
	for(int i = 1; i <= sqrt(n); i++){
		if(n%i == 0){
			cnt = cnt + 2;
			if(cnt >= 3){
				break;
			}
		}
	} 
	if(n <= 1){
		cnt = 1;
	}
	if(cnt >= 3 || cnt <= 1){
		cout<<"F"<<endl;
	}else{
		cout<<"T"<<endl;
	}
	return 0;
}


解题思路2

1)先明确输入输出有几个,这里输入只有1个,是int类型,输出只有一个,是string类型或者char类型都可以
2)分析题意,这里是判断输入的数n是否为素数,需要先知道什么是素数,如果1个数只有1和它本身两个因数那么这个数就是素数,否则就不是
3)我们先假设这个数是,就创建一个bool类型的变量f,赋初值true表示先假设这个数n是素数,然后在2~n-1之间找第3个因数,如果找到了,那么就修改f的值为false,直接跳出循环,循环结束去判断f的值,如果是true那么就输出T,否则输出F

代码实现

#include <bits/stdc++.h>
using namespace std;

int main(){
	int n,i;
	bool f = true;
	cin>>n;
	for(i=2;i<=sqrt(n);i++){
		if(n%i == 0){
			f = false;
			break;
		}
	}
	if(f==true && n>1){
		cout<<"T"<<endl;
	}else{
		cout<<"F"<<endl;
	}

}

标签:输出,cnt,判断,1023,int,因数,素数,输入
From: https://blog.csdn.net/qq_41611106/article/details/142534067

相关文章

  • [Python手撕]判断二叉搜索树
    #Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defisValidBST(self,root:Optional[TreeNod......
  • jquery中判断图片是否存在的实现代码
    有时候我们需要判断当前的图片是否存在,方便后期做一些操作,当然也可以参考上一篇文章,如果不存在就替换位默认图片functionisHasImg(src){varimg=newImage();img.src=src;img.onload=function(){if(img.width>0||img.height>0){......
  • php怎么判断打开是手机还是pc
    在现今的移动互联网时代,优化网站设计来适应不同用户终端设备的使用已成为一个必要的任务。因此,如何在php中判断用户访问网站时是使用手机还是pc成为了开发人员们需要面对的问题之一。本文将介绍一些常见的php代码,帮助开发人员判断打开网站的用户端是否为手机或pc。一、通过HTTP_U......
  • PHP判断访客是否手机端(移动端浏览器)访问的方法总结
    方法一:使用$_SERVER全局变量我们可以使用PHP中的$_SERVER全局变量来获取访问者的User-Agent头部信息,进而判断是否为移动端设备。User-Agent头部信息包含了访问者的浏览器和操作系统信息,在移动设备的User-Agent中会包含”Mobile”的关键字,所以如果检测到User-Agent中包含”Mobile”......
  • 计算几何——判断点是否在线上
    15.计算几何:点、直线、线段的位置关系及其他15.计算几何:点、直线、线段的位置关系及其他_点到直线距离正负怎么判断-CSDN博客(计算几何)判断一个点是否在线段上(计算几何)判断一个点是否在线段上_求点在线段上-CSDN博客zoj1081:PointsWithin(计算几何,判断点是否在多边......
  • 05 in 判断是否包含查找内容示例 包含 字符串 列表 元组 字典
    1、strv="Python全栈21期"if"全栈"inv:print('含敏感字符')2、list/tuplev=['alex','oldboy','藏老四','利奇航']if"利奇航"inv:print('含敏感')3、dictv={'k1......
  • 03 if 条件判断
    if条件判断实际写if嵌套时,不要层级太深,如果真要层级太深,要看下是不是逻辑有问题,或者是否有其他的办法初级条件语句#请实现一个功能:让用户输入性别,如果是:男,则输出:再见.如果是女,则输出:来呀来呀;gender=input("请输入性别")"""如果是男生,打印再见否则:打......
  • 只用单链表的方式判断一个链表是否为回文链表
    思路寻找链表的中点:使用快慢指针的方法,快指针每次移动两步,慢指针每次移动一步。当快指针到达链表末尾时,慢指针正好位于链表的中间。反转后半部分链表:从中点开始反转链表的后半部分。比较前半部分和反转后的后半部分:逐一比较两个部分的节点值,如果所有对应的节点值都相同,则......
  • php 判断是否是手机浏览器
    在PHP中,判断是否为移动设备可以通过检查用户代理字符串(User-Agent)来实现。以下是一个简单的函数,用于检测是否是移动设备浏览器:functionisMobile(){$userAgent=strtolower($_SERVER['HTTP_USER_AGENT']);$mobileAgents=array("android","blac......
  • 在Scala中,如何判断两个对象相等,覆写类equals方法
    覆写类equals方法overridedefequals(other:Any):Boolean={true/false}图书馆借书如何判断两条记录是不是一个同学借的?//约定:两个人的名字一样,就是一个人!就是相等的!!classStu(varname:String){//override:改写,覆写,重写。把之前的覆盖掉overridedefequals(......