| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 615 人关注过本帖
标题:高手帮个忙,这个程序是验证一个数是不是素数的,帮忙改错。谢谢!
只看楼主 加入收藏
梦醒无尘
Rank: 2
等 级:论坛游民
帖 子:22
专家分:16
注 册:2011-10-13
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:9 
高手帮个忙,这个程序是验证一个数是不是素数的,帮忙改错。谢谢!
图片附件: 游客没有浏览图片的权限,请 登录注册
#include<stdio.h>
#include<math.h>

#define YES 1
#define NO  0

int panduan(int N)
{
    int i,j;

       if(N = 2)
            return YES;
       else if  (N < 2 || N%2 == 0)
            return NO;

       else
       {
           j = (int)sqrt(N+1);
           for(i = 3; i <= j; i =i + 2)
               if(N % i == 0)
                   return NO;
               else
                   return YES;
       }
      
      
}
    int mian(void)
    {
        int N;
        printf("请输入一个数:");
        scanf("%d",&N);
        if(panduan(N) == YES)
            printf("%d必须是素数",N);
        else
            printf("%d不是素数",N);
    }
搜索更多相关主题的帖子: void include return 
2012-02-25 18:44
清微御宇
Rank: 6Rank: 6
来 自:开封
等 级:侠之大者
威 望:2
帖 子:318
专家分:497
注 册:2012-1-15
收藏
得分:3 
      if(panduan(N) == YES)
            printf("%d必须是素数",N);
        else
            printf("%d不是素数",N);
符号有问题就是那个",N"改成英文的符号
#include<stdio.h>
#include<math.h>

#define YES 1
#define NO  0

int panduan(int N)
{
    int i,j;

       if(N = 2)
            return YES;
       else if  (N < 2 || N%2 == 0)
            return NO;

       else
       {
           j = (int)sqrt(N+1);
           for(i = 3; i <= j; i =i + 2)
               if(N % i == 0)
                   return NO;
               else
                   return YES;
       }
      
      
}                                //还有两处警告自己再看看吧

    int mian(void)
    {
        int N;
        printf("请输入一个数:");
        scanf("%d",&N);
        if(panduan(N) == YES)
            printf("%d必须是素数",N);
        else
            printf("%d不是素数",N);
    }
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 清微御宇 于 2012-2-25 19:05 编辑 ]

Stay hungry , Stay foolish!
2012-02-25 18:57
于祥
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:5
帖 子:1047
专家分:4132
注 册:2011-4-24
收藏
得分:3 
#include<stdio.h>
#include<math.h>
 
#define YES 1
#define NO  0
 
int panduan(int N)
 {
     int i,j;
 
       if(N == 2)
             return YES;
        else
        if  (N < 2 || (N%2 == 0))
             return NO;
 
       else
        {
            j = (int)sqrt(N+1);
            for(i = 3; i <= j; i =i + 2)
                if(N % i == 0)
                    return NO;
                return YES;
        }
        
      
}
     int main(void)
     {
         int N;
         printf("请输入一个数:");
         scanf("%d",&N);
         if(panduan(N))
             printf("%d必须是素数",N);
         else
             printf("%d不是素数",N);
     }
好了

最基础的往往是你最容易忽略的!
2012-02-25 19:09
天天涯涯
Rank: 4
等 级:业余侠客
帖 子:215
专家分:267
注 册:2011-10-17
收藏
得分:3 
程序代码:
#include <stdio.h>
#include <math.h>
int judge(int n)
{
    int i,f=1;
    for(i=2;i<=sqrt(1.0*n);i++)
        if(n%i==0)
            f=0;
    return (f);
}
int main()
{
    int n,m;
    scanf("%d",&m);
    while(m--)
    {
        scanf("%d",&n);
        printf("%d\n",judge(n));
    }
}
如果是素数输出1,否则输出0
2012-02-25 19:18
回首依依
Rank: 7Rank: 7Rank: 7
来 自:苏州
等 级:黑侠
威 望:1
帖 子:193
专家分:524
注 册:2011-12-3
收藏
得分:3 
回复 2楼 清微御宇
两处非常严重的警告咯。
第一,if(N==2)  可不是if(N=2);判断变赋值得话,if 的条件就永远成立咯,除非赋0值;
第二,
是main,不是mian......

这是我写的:#include"stdio.h"
int IsSpring(int n)
{
   int i;
   for(i=2;i*i<=n;i++)   
   {
      if (n%i==0)
      {
            return 0;
            break;
      }
   }
   if(i*i>n) return 1;
}
int main()
{
    int x;
    scanf("%d",&x);
    if(IsSpring(x)) printf("Yes!");
    else printf("No!");
    return 0;
}


[ 本帖最后由 回首依依 于 2012-2-25 21:00 编辑 ]
2012-02-25 20:57
清微御宇
Rank: 6Rank: 6
来 自:开封
等 级:侠之大者
威 望:2
帖 子:318
专家分:497
注 册:2012-1-15
收藏
得分:0 
回复 5楼 回首依依
哦,知道了,我只是复制了调试一下(新人还程序没看懂呢! ),还是太粗心了!谢谢呀!

[ 本帖最后由 清微御宇 于 2012-2-25 21:37 编辑 ]

Stay hungry , Stay foolish!
2012-02-25 21:31
回首依依
Rank: 7Rank: 7Rank: 7
来 自:苏州
等 级:黑侠
威 望:1
帖 子:193
专家分:524
注 册:2011-12-3
收藏
得分:0 
回复 6楼 清微御宇
呵呵,我也是新人哦。
2012-02-25 23:28
梦醒无尘
Rank: 2
等 级:论坛游民
帖 子:22
专家分:16
注 册:2011-10-13
收藏
得分:0 
回复 5楼 回首依依
sorry,有可能是写的时候太快了,连这种main与mian这种低极的错误都写出来了,我可真的是糗大了。。
2012-02-26 12:56
梦醒无尘
Rank: 2
等 级:论坛游民
帖 子:22
专家分:16
注 册:2011-10-13
收藏
得分:0 
知道哪里错误了,在最后的printf下用了中文的逗号,再就是main写成了mian了,再就是== 写成=号了,别的没错误了,谢谢大家的支持!大家可以在我的帖子上的程序找到这两处错误。

[ 本帖最后由 梦醒无尘 于 2012-2-26 13:22 编辑 ]
2012-02-26 13:05
exo1991
Rank: 2
等 级:论坛游民
帖 子:66
专家分:98
注 册:2011-8-30
收藏
得分:0 
程序代码:
#include <iostream>
#include <math.h>
using namespace std;
void Judge(int);
int main()
{
    cout<<"please input a number."<<endl;
    int i;
    cin>>i;
    while(i<=1)
    {
        cout<<"input erro!"<<endl;
        cout<<"please input again !"<<endl;
        cin>>i;
    }    
    Judge(i);
    return 0;
}
void Judge(int number)
{
    if(number==2)
    {
        cout<<"The num is Prime number."<<endl;
        return;
    }
    for(int i=3;i<=(int)sqrt(number);i++)
    {
        if(number%i==0)
        {
            cout<<"The num is not Prime number."<<endl;
            return;
        }
    }
    cout<<"The num is Prime number."<<endl;
}
个人写的仅供参考!!!
2012-02-26 17:21
快速回复:高手帮个忙,这个程序是验证一个数是不是素数的,帮忙改错。谢谢!
数据加载中...
 
   



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

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