一个判断素数都不会的蒟蒻
  • 板块灌水区
  • 楼主zzx_666
  • 当前回复11
  • 已保存回复11
  • 发布时间2023/9/18 21:03
  • 上次更新2023/11/2 19:12:16
查看原帖
一个判断素数都不会的蒟蒻
1036298
zzx_666楼主2023/9/18 21:03

数值一大就容易错

#include <cstdio>
#include <cmath>
using namespace std;
long long n,tmp;
int q(long long t){
	if(t==1) return 0;
	for(long long i=2;i<=sqrt(t);i++){
		if(t%i==0) return 0;
	}
	return 1;
}
int main(){
	scanf("%ld",&n);
	for(int i=0;i<n;i++){
		scanf("%ld",&tmp);
		if(q(tmp)) puts("Yes");
		else puts("No");
	}
	return 0;
//1<=n<=100
//1<=t<=10^18
} 

1000000000000000510000000000000005 这个例子就过不了,但是拿出来判断一下就又可以,同为1000000000000000510000000000000005 但答案却不一样???

#include <cstdio>
#include <cmath>
using namespace std;
long long n,tmp;
int q(long long t){
	if(t==1) return 0;
	for(long long i=2;i<=sqrt(t);i++){
		if(t%i==0) return 0;
	}
	return 1;
}
int main(){
	scanf("%ld",&n);
	for(int i=0;i<n;i++){
		scanf("%ld",&tmp);
		if(q(tmp)) puts("Yes");
		else puts("No");
	}
	if(q(10000000000000005)){
		puts("Yes");
	}
	else{
		puts("No");
	}
	return 0;
} 

有dalao知道原因吗?

2023/9/18 21:03
加载中...