一个数是不是素数

题目描述

拓拓刚学会素数,现在回到家,他妈妈想考验一下拓拓学的怎么样。于是问了他一个问题:给你一个整数,你能说出他是不是素数吗?现在拓拓算的很慢,想请你帮忙写个程序:计算一个数是不是素数,如果是,则输出"is prime";否则输出"is not prime"。

输入格式

第一行一个整数 n。 ( 0≤n≤10000,0000,0000,00000 )

输出格式

输出这个数是不是素数。

样例

输入数据 #1

复制代码
1000

输出数据 #1

复制代码
1000 is not prime

输入数据 #2

复制代码
97

输出数据 #2

复制代码
97 is prime

数据范围

  • 对于 100% 的测试数据满足: 0≤n≤10000,0000,0000,00000 。

解析

这题让判断素数(也就是质数)

NOTE

0≤n≤10000,0000,0000,00000 数据有点大哦

所以第一版

cpp 复制代码
//别着急copy
#include<bits/stdc++.h>
using namespace std;
int sushu(int x){
	if(x<2){
		return 0;
	}
	int i;
	for(i=2;i<=sqrt(x);i++){
		if(x%i==0){
			return 0;
		}
	}
	return 1;
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n;
	cin>>n;
	if(sushu(n)){
		cout<<n<<' '<<"is prime";
	}
	else{
		cout<<n<<' '<<"is not prime";
	}
}

But

这很明显会WA,因为n的范围太大了

int很明显会爆

So,第二版

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	long long n;
	cin >> n;
	if (n < 2) {
		cout << n << " is not prime";
		return 0;
	}
	if (n == 2) {
		cout << n << " is prime";
		return 0;
	}
	if (n % 2 == 0) {
		cout << n << " is not prime";
		return 0;
	}
	for (long long i = 3; i * i <= n; i += 2) {
		if (n % i == 0) {
			cout << n << " is not prime";
			return 0;
		}
	}
	cout << n << " is prime";
	return 0;
}

But

这种写法太啰嗦了

So

还有一种写法

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
long long sushu(long long x){
	if(x<2){
		return 0;
	}
	long long i;
	for(i=2;i<=sqrt(x);i++){
		if(x%i==0){
			return 0;
		}
	}
	return 1;
}
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	long long n;
	cin>>n;
	if(sushu(n)){
		cout<<n<<' '<<"is prime";
	}
	else{
		cout<<n<<' '<<"is not prime";
	}
}

直接用函数就可以了

OK, 恭喜又解决了一道难题(对于我这种 蒟蒻来讲**)**

相关推荐
飞Link1 小时前
什么是 PX4?一文了解 PX4 在空地协同中的作用
算法·无人机
一去不复返的通信er7 小时前
力扣-图论-岛屿数量
算法·leetcode·图论
程序 代码狂人10 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
HDU-Dade11 小时前
【校招笔试真题】简要介绍 Self-Attention 的前沿算法
人工智能·算法
小郎君65813 小时前
Vue keep-alive 切标签后滚动位置回顶?因为 onDeactivated 里读到的 scrollTop 是 0
算法
邵奈一14 小时前
GPT-6.1 Terra速度是Sol的3倍,价格减半
算法
RaaS10014 小时前
Node.js Brotli RCE 漏洞自查指南:fetch、undici、axios 都在影响面,三分钟确认你的版本
人工智能·深度学习·算法
shehuiyuelaiyuehao14 小时前
算法56,重排链表
数据结构·算法·链表
qq_4523962315 小时前
第四篇:《索引原理与实战:B-tree、Hash、GIN、GiST、BRIN》
算法·哈希算法·gin