| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1382 人关注过本帖
标题:请问一下 这个代码错在哪了 为什么运行不对啊,,请各位大神看看
只看楼主 加入收藏
hisia_
Rank: 2
等 级:论坛游民
帖 子:45
专家分:26
注 册:2016-1-24
结帖率:72.73%
收藏
已结贴  问题点数:15 回复次数:3 
请问一下 这个代码错在哪了 为什么运行不对啊,,请各位大神看看
刚开始学c语言  请各位大神看看这个代码错在哪里了。。
是HDU的一道题求素数的
 素数判定

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


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
 

Author
lcy
 

Source
C语言程序设计练习(二)
 

代码是:
程序代码:
#include <stdio.h>
#include <math.h>
int main()
{
  int i,j=2,n,a,b,t,z;
  scanf("%d %d",&a,&b);
  if(-39<=a&&a<b&&b<=50)
  {
   while(a!=0&&b!=0)
   {
     for(i=a;i<=b;i++)
      {z=i*i+i+41;
      if(z%j==0)
        break;
      j++;
      }
      }if(j==z)
        printf("OK");
      else
        printf("Sorry");
  }
  return 0;
}
代码写得很乱  所以大家辛苦看一下。。谢谢啦~!
搜索更多相关主题的帖子: 表达式 Memory 学c语言 Java 
2017-05-22 15:40
莫飞梦
Rank: 2
等 级:论坛游民
帖 子:5
专家分:19
注 册:2017-5-22
收藏
得分:15 
#include <stdio.h>
#include <math.h>
int main()
{
  int i,j=2,a,b,z;
     
  

    scanf("%d %d",&a,&b);
    if(-39<=a && a<b && b<=50)
    {
         
        
        
            for(i=a;i<=b;i++)
            {   
                z=i*i+i+41;
                while (z!=j)
                {
                    
                    if(z%j==0)
                    {printf("Sorry");
                    break;}
                    j++;
                }
                    
            }
            if(i==b+1)
            printf("OK");
        
    }   
   
  
  return 0;
}
2017-05-22 16:48
莫飞梦
Rank: 2
等 级:论坛游民
帖 子:5
专家分:19
注 册:2017-5-22
收藏
得分:0 
#include <stdio.h>

int main()
{
  int i,j=2,a,b,z, no =0;
     
  
while (1)
  {

    scanf("%d %d",&a,&b);
    if(a==0 && b==0)
    {break;}
   
    if(-39<=a && a<b && b<=50)
    {
         
        
        
            for(i=a;i<=b;i++)
            {   
                z=i*i+i+41;
                while (z!=j)
                {
                    
                    if(z%j==0)
                    {
                        no = 1;
                    
                        break;
                    }
                    j++;
                }
                    
            }
            
        
    }   
}
   
    if (no == 1)
    {   
        printf("Sorry\n");
    }
    else
    {   
        printf("yes\n");
    }
   

  return 0;
}
2017-05-22 16:54
莫飞梦
Rank: 2
等 级:论坛游民
帖 子:5
专家分:19
注 册:2017-5-22
收藏
得分:0 
输入数据有多组,每组占一行,满足这个要求应该是喊你用sscanf函数。
2017-05-22 16:56
快速回复:请问一下 这个代码错在哪了 为什么运行不对啊,,请各位大神看看
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015059 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved