zoukankan      html  css  js  c++  java
  • 素数判定

    原先错误答案
    #include <stdio.h>
    int main()
    {
    int i,n,m,y,x,t,c,a;
    while(scanf("%d %d",&n,&m)!=EOF)
    {if(n=0,m=0) break;
    t=0;
    for(i=n;i<=m;i++)
    {a=i*i+i+41;

    for(c=1;c<=a;c++)
    { y=i%c;

    if(y==0) t=1;
    }

    }
    if(t==1) printf("OK");
    else if(t==0) printf("Sorry");
    }
    return 0;
    }

      调用函数isPrime

    #include <stdio.h>
    int isPrime(int a)
    {
    int i;
    if(a<=1)
    return 0;
    for(i=2;i<a;i++)
    {
    if(a%i==0)   //题目说表达式的值都为素数,所以只要有一个不满足就不满足
    return 0;
    }
    return 1;
    }
    int main ()
    {
    int c,n,m,sign;

    while(scanf("%d%d",&n,&m)!=EOF)
    {sign=1;
    if(n==0&&m==0) break;
    for(c=n;c<=m;c++)
    {
    if(!isPrime(c*c+c+41))
    {sign=0;}
    }
    if(sign==1) printf("OK ");
    else printf("Sorry ");
    }
    return 0;
    }


    其实算素数 只要整除2—根号a之间的数就可以了

    #include <stdio.h>
    int isPrime(int a)
    {
    int i;
    if(a<=1)
    return 0;
    for(i=2;i*i<a;i++)
    {
    if(a%i==0)
    return 0;
    }
    return 1;
    }
    int main ()
    {
    int c,n,m,sign;

    while(scanf("%d%d",&n,&m)!=EOF)
    {sign=1;
    if(n==0&&m==0) break;
    for(c=n;c<=m;c++)
    {
    if(!isPrime(c*c+c+41))
    {sign=0;}
    }
    if(sign==1) printf("OK ");
    else printf("Sorry ");
    }
    return 0;
    }


    自己答案纠正
    #include <stdio.h>
    int main()
    {
    int i,n,m,y,x,t,c,a;
    while(scanf("%d %d",&n,&m)!=EOF)
    {if(n==0,m==0) break;
    t=0;
    for(i=n;i<=m;i++)
    {a=i*i+i+41;

    for(c=2;c<a;c++)
    { y=a%c;

    if(y==0) t=1;
    }

    }
    if(t==0) printf("OK ");
    else if(t==1) printf("Sorry ");
    }
    return 0;
    }


    1不是素数 这个题目的取值最少是41,所以不要单独考虑1

  • 相关阅读:
    Java多线程学习---------超详细总结(java 多线程 同步 数据传递 )
    类的高级特性——抽象类
    多态
    继承、继承中的重写
    接口interface、实现接口implements
    “==”运算符与equals()
    静态成员
    对象
    属性和行为(成员变量和成员方法)
    字符串生成器
  • 原文地址:https://www.cnblogs.com/liuming1115/p/4365454.html
Copyright © 2011-2022 走看看