HDU - 2012 素数判定 解题

                       素数判定

                                Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
                                     Total Submission(s): 140168    Accepted Submission(s): 49576

Problem Description

对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数。

Input

输入数据有多组,每组占一行,由两个整数x,y组成,当x=0,y=0时,表示输入结束,该行不做处理。

Output

对于每个给定范围内的取值,如果表达式的值都为素数,则输出"OK",否则请输出“Sorry”,每组输出占一行。

Sample Input

0 1
0 0

Sample Output

OK

这个是水题~~~

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int fun(int x);
 5     void fun1(int x,int y);
 6     int x,y;
 7     while(scanf("%d%d",&x,&y),x,y)
 8     {
 9         fun1(x,y);
10     }
11     return 0;
12 }
13 int fun(int x)
14 {
15     int i;
16     for(i=2;i<x/2;i++)
17     {
18         if(x%i==0) return 0;
19     }
20     return 1;
21 }
22 void fun1(int x,int y)
23 {
24     int i,n,k;
25     for(i=x;i<=y;i++)
26     {
27         n=i*i+i+41;
28         k=fun(n);
29         if(k!=1)
30         {
31             printf("Sorry\n");
32             return;
33         }
34     }
35     printf("OK\n");
36 }
时间: 2024-10-24 21:20:03

HDU - 2012 素数判定 解题的相关文章

hdu 2012 素数判定 Miller_Rabbin

素数判定 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 71785    Accepted Submission(s): 24969 Problem Description 对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数. Input 输入数据

HDU 2012 素数判定

素数判定 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 72746    Accepted Submission(s): 25331 Problem Description 对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数. Input 输入数

HDU 2012 素数判定(素数)

http://acm.hdu.edu.cn/showproblem.php?pid=2012 题意:水题一枚 对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x<y<=50),判定该表达式的值是否都为素数. 分析: 本题的数据范围很小,求出表达式在-39到50内的所有可能值可以得到下面的数: 1523 1447 13731301 1231 1163 1097 1033 971  911 853  797 743  691  641 593  547 

hdu 1012 素数判定

这道题~以前判定prime是一个个去试着整除再去存储,上次弄过欧拉函数那题目之后就知道了,这样会更快捷: 1 prime[0] = prime[1] = 1; 2 for(int i = 2; i <maxn; i++) 3 { 4 if(!prime[i]) 5 { 6 for(int j = i * 2; j < maxn; j += i) 7 prime[j] = 1; 8 } 9 } 以下是AC代码~~~水水题~ 1 #include<iostream> 2 #includ

HDU 2012 素数判断方式

复习了一下素数 埃氏筛 线性筛 埃氏筛和线性筛可以优先筛选出素数,从而节省时间哦 线性筛应该挺好理解的 埃氏筛就是i%prime[j] 这里可能不太好理解 可以举几下例子 就会慢慢懂的 举了例子 下次再看  脑海里就会自动浮现当初举的例子啦. // 基础判断素数 bool prime(long long p){ for(int i=2; i * i < p; i++){ if(p % i == 0) return true; } return false; } // 线性筛 void findp

hdu 1397 (素数判定)

一开始提交了这个,果断TLE 1 #include <cstdio> 2 #include <iostream> 3 #include <string> 4 #include <queue> 5 #include <vector> 6 #include <map> 7 #include <cmath> 8 using namespace std; 9 10 #define MEM(a,v) memset (a,v,size

2012.素数判定

#include<iostream> #include<math.h> using namespace std;   int is_prime(int p){          int j,k=0;          for(j=2;j<=p;j++){                    if(p%j!=0)k++;                    break;          }          if(k==0)return 0;          else

[Miller-Rabin][CODEVS1702]素数判定2 解题报告

题面描述:判定一个数P∈[1,2^63-1]∩N是素数么. 按照朴素的判定素数方法,至少也需要O(P^0.5)的,但这道题就是霸气到连这样的时间复杂度都过不了的地步. 实在是不会做了,就学习了传说中的Miller-Rabin素数判定法. 两个引理: ①费马小定理: 设p为质数,且不满足p|a, 则a^(p-1)=a(mod p). 证: 又一个引理,若n与p互质,且a与p互质,则n*a与p互质. 这真的是一个看似很简单的引理,但它却意味着一些看似不那么简单的事情. 设A=(0,p)∩N,则 ①对

数学#素数判定Miller_Rabin+大数因数分解Pollard_rho算法 POJ 1811&amp;2429

素数判定Miller_Rabin算法详解: http://blog.csdn.net/maxichu/article/details/45458569 大数因数分解Pollard_rho算法详解: http://blog.csdn.net/maxichu/article/details/45459533 然后是参考了kuangbin的模板: http://www.cnblogs.com/kuangbin/archive/2012/08/19/2646396.html 模板如下: //快速乘 (a