【DidaOJ】[1142]素数小问题

文章字数:256

问题描述

问题分析

让萌萌哒小苏贺纠结了好久的一题
不过没那么复杂的
直接进行计算后判断是否为素数就好了

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include<stdio.h>
#include<math.h>
//int a[1005200]= {1,1};
//bool b[2000200];
bool su(int m) {
	if(m<2)
		return false;
	int i;
	int k=(int)sqrt(m);
	for(i=2; i<=k; i++) {
		if(m%i==0)
			break;
	}
	if(i>k)
		return true;
	else
		return false;
}
int main() {
//  for(int i=2; i<1010; i++) {
//      if(!a[i]) {
//          for(int j=i+i; j<1005200; j+=i) {
//              a[j]=1;
//          }
//      }
//  }
//  for(int i=-1000100; i<1000100; i++) {
//      if(i%2!=0)
//          b[i]=false;
//      else {
//          int m;
//          if(i<0)
//              m=-i-(i/2);
//          else
//              m=i-(i/2);
//          if(!a[m])
//              b[i]=true;
//      }
//  }
	int n,m;
	while(scanf("%d %d",&n,&m)!=EOF) {
		int i;
		for(i=m; i>=n; i--) {
			int t;
			if(i<0) {
				t=-(i+i/2);
			} else {
				t=i-i/2;
			}
			if(su(t)) {
				break;
			}
		}
		if(i>=n)
			printf("%d\n",i);
		else
			printf("-1\n");
	}
	return 0;
}

题目地址:【DidaOJ】[1142]素数小问题

该内容采用 CC BY-NC-SA 4.0 许可协议。

如果对您有帮助或存在意见建议,欢迎在下方评论交流。

加载中...