| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 768 人关注过本帖
标题:判断素数问题额
只看楼主 加入收藏
zheng3912930
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2011-11-10
结帖率:66.67%
收藏
已结贴  问题点数:16 回复次数:10 
判断素数问题额
#include<stdio.h>
#include<math.h>
int main()
{
    int i,k;
    int q;
    printf("请输入一个数,来判断他是不是素数!\n");
    while((scanf("%d",&q))!=EOF)
    {
        if(q==1||q==2||q==3)
        printf("%d是素数!\n",q);
        else
        {
            k=sqrt(q);
            for(i=2;i<=k;i++)
            {
                if(q%i==0)
                {
                printf("%d不是素数!\n",q);   
                break;
                }
                else
            printf("%d是素数!\n",q);
               
            }
        }
    }
    return 0;
}
为什么输入9时,输出:9是素数 9不是素数,还有输入101时 输出好多101是素数
怎么改,谢谢!
搜索更多相关主题的帖子: include 
2012-04-03 09:22
az569872968
Rank: 2
等 级:论坛游民
帖 子:46
专家分:78
注 册:2012-3-14
收藏
得分:2 
#include<stdio.h>
void main()
{
    int x,
   printf("请输入一个数,来判断他是不是素数!\n");
  scanf("%d",&x);
   for(int i=2;i<x;i++)
   {
     if(x%i==0)
      {
      printf("%d不是素数!\n",x);
     break;
      }
    if(i==x)
     {
    printf("%d是素数!\n",x);

     }
   }
}
没调试你调试下看看吧
2012-04-03 09:35
az569872968
Rank: 2
等 级:论坛游民
帖 子:46
专家分:78
注 册:2012-3-14
收藏
得分:0 
#include<stdio.h>
void main()
{
    int x,
   printf("请输入一个数,来判断他是不是素数!\n");
  scanf("%d",&x);
   for(int i=2;i<x;i++)
   {
     if(x%i==0)
      {
      printf("%d不是素数!\n",x);
     break;
      }
    if(i==x)
     {
    printf("%d是素数!\n",x);

     }
   }
}
没调试你调试下看看吧
2012-04-03 09:35
zheng3912930
Rank: 1
等 级:新手上路
帖 子:15
专家分:2
注 册:2011-11-10
收藏
得分:0 
回复 3楼 az569872968
谢谢,你这个程序是对的,但是我要的是我的程序为什么是错的
你这个程序只能输入一次!
2012-04-03 09:44
kifine
Rank: 2
等 级:论坛游民
帖 子:48
专家分:49
注 册:2011-5-9
收藏
得分:1 
加个while循环就OK了呀
2012-04-03 10:36
Litsam
Rank: 1
等 级:新手上路
帖 子:9
专家分:8
注 册:2012-3-19
收藏
得分:1 
回复 4楼 zheng3912930
加个do……while(这里的内容自己设定)
2012-04-03 11:37
Litsam
Rank: 1
等 级:新手上路
帖 子:9
专家分:8
注 册:2012-3-19
收藏
得分:3 
bool Is_prime (int x) //用这个函数来判断是不是素数,用函数调用会比较灵活点
{
 for(int i=2;i<x;i++)
   {
     if(x%i==0)
     break;

     if(i==x)
   return true;
else
return false;     }
}
2012-04-03 11:42
蓝xuan
Rank: 4
等 级:业余侠客
帖 子:81
专家分:211
注 册:2012-3-31
收藏
得分:4 
程序代码:
#include<stdio.h>

 #include<math.h>

 int main()

 {
     int i,k=0;
     int q;
     printf("请输入一个数,来判断他是不是素数!\n");
     while((scanf("%d",&q))!=EOF)
     {
             k=int(sqrt(q));
             for(int i=2;i<=k;i++)
             {
                 if(q%i==0)
                 {
                     printf("%d不是素数!\n",q);
                     break;
                 }
             if(i>=k)
                 printf("%d是素数!\n",q);
             }
     }
     return 0;

 }
2012-04-03 12:01
lxsjzbd
Rank: 4
来 自:河北省
等 级:业余侠客
帖 子:97
专家分:258
注 册:2012-3-31
收藏
得分:5 
先说一下你的代码:
你的是:在for循环中只要输入的数不能被i整除,就会输出一次“%d是素数!“直到循环结束或能被整除为止  101就是到循环终止(sqrt(101)=10)

下边我写了个满足你要求的:
#include<stdio.h>
#include<math.h>
int main()
{
     int i,k=0;
     int q;
     printf("请输入一个数,来判断他是不是素数!\n");
     while((scanf("%d",&q))!=EOF)
     {
             int l=1;
            k=sqrt(q);
             for(i=2;i<=k;i++)
             {
                 if(q%i==0)
                 {
                     l=0;
                     break;
                 }
                 if(i>=k)  l=1;
              }
              if(l==1) printf("%d是素数\n",q);
              if(l==0) printf("%d不是素数\n",q);
     }
}

[ 本帖最后由 lxsjzbd 于 2012-4-3 13:46 编辑 ]
2012-04-03 13:43
蓝奇缘
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-12-22
收藏
得分:0 
在while((scanf("%d",&q))!=EOF)
中,EOF表示什么?
新手上路,求高手赐教!
2012-04-05 10:02
快速回复:判断素数问题额
数据加载中...
 
   



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

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