| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 727 人关注过本帖
标题:判别素数
只看楼主 加入收藏
lonelyfairy
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2009-9-29
结帖率:90.91%
收藏
已结贴  问题点数:10 回复次数:9 
判别素数
编一函数 判别某一数是否为素数,若是,返回值为1,否则,返回值为0!哪位高手能赐教?
搜索更多相关主题的帖子: 素数 判别 
2009-09-30 11:59
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:0 
#include<stdio.h>  
#include<math.h>  
void main()  
{  
    long int i,j,z;  
    printf("please input the number i:\n");
    scanf("%ld",&i);
    for(j=2;i<=sqrt(i);j++)  
            if(i%j==0) break;  
            if(j>sqrt(i))  
             printf(" 1  ");
            else
            printf("0");
    }  
printf("\n" );  
 
}  
 
2009-09-30 12:06
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:0 
   su(long int i)
   {
    long int j;
    for(j=2;i<=sqrt(i);j++)   
            if(i%j==0) break;   
            if(j>sqrt(i))   
             return (1);
            else  
            return (0);
    }   
 
2009-09-30 12:09
沈默
Rank: 1
等 级:新手上路
帖 子:11
专家分:9
注 册:2009-9-29
收藏
得分:5 
#include"stdio.h"  
 
 int f(int k)
    {  
     int j;
     int flag=0;
     for(j=2;j<k;j++)   
         if(k%j==0)   
         {   
             flag=1;
             return 0;   
             break;  
         }
    while(flag==0) return 1;
 }
 void main()  
 {  
     int p,n;
     printf("请输入要判断的数n:");
     scanf("%d",&n);
     p=f(n);
     printf("%d\n",p);
 }

[ 本帖最后由 沈默 于 2009-9-30 14:06 编辑 ]
2009-09-30 14:03
lonelyfairy
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2009-9-29
收藏
得分:0 

#include<stdio.h>   
#include<math.h>   
void main()   
{   
    long int i,j,z;   
    printf("please input the number i:\n");
    scanf("%ld",&i);
    for(j=2;i<=sqrt(i);j++)   
            if(i%j==0) break;   
            if(j>sqrt(i))   
             printf(" 1  ");  
            else  
            printf("0");  
    }   
printf("\n" );   
 
}   
 
这个有错误啊!上机编译时有两个错误!









#include"stdio.h"   
 
int f(int k)  
    {   
     int j;  
     int flag=0;  
     for(j=2;j<k;j++)   
         if(k%j==0)   
         {   
             flag=1;  
             return 0;   
             break;   
         }  
    while(flag==0) return 1;  
}  
void main()   
{   
     int p,n;  
     printf("请输入要判断的数n:");  
     scanf("%d",&n);  
     p=f(n);  
     printf("%d\n",p);  
}
这个编译时在“break; ”有个警告是:没能到达函数f(n)!!!




高手能解析一下吗?
2009-09-30 18:42
cxg8790809
Rank: 2
等 级:论坛游民
帖 子:18
专家分:22
注 册:2009-9-25
收藏
得分:0 
在include后面 声明 f()函数;
2009-09-30 19:17
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
收藏
得分:0 
#include"stdio.h"   

int f(int k)  
    {   
     int j;  
     int flag=0;  
     for(j=2;j<k;j++)   
         if(k%j==0)   
         {   
             flag=1;  
             return 0;   
             break;   
         }  
    while(flag==0) return 1;  
}  
void main()   
{   
     int p,n;  
     printf("请输入要判断的数n:");  
     scanf("%d",&n);  
     p=f(n);  
     printf("%d\n",p);  
}
这个编译时在“break; ”有个警告是:没能到达函数f(n)!!!

因为break的前面有return 0,当程序运行到return 0时就已经返回main函数了,所以break不会被运行到。
去掉break好了

你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-09-30 22:43
flyingcloude
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:6
帖 子:598
专家分:1512
注 册:2008-1-13
收藏
得分:0 
#include<stdio.h>   
#include<math.h>   
void main()   
{   
    long int i,j,z;   
    printf("please input the number i:\n");
    scanf("%ld",&i);
    for(j=2;i<=sqrt(i);j++)    //i<=sqrt(i)应该改成 j<=sqrt(i)
            if(i%j==0) break;   
            if(j>sqrt(i))   
             printf(" 1  ");  
            else  
            printf("0");  
    }   
printf("\n" );   

}   

这个有错误啊!上机编译时有两个错误!

你能学会你想学会的任何东西,这不是你能不能学会的问题,而是你想不想学的问题
2009-09-30 22:48
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:5 
#include<stdio.h>      
void main()   
{   
    long int i,j,z;   
    printf("please input the number i:\n");
    scanf("%ld",&i);
    for(j=2;j<=sqrt(i);j++)   
            if(i%j==0) break;   
    if(j>sqrt(i))   
             printf(" 1  ");   
    else   
            printf("0");   
                           //这一行应该没有花括号
printf("\n" );      
 
}   
我粗心了。没发现自己的错误。

[ 本帖最后由 m456m654 于 2009-9-30 23:04 编辑 ]
2009-09-30 23:03
dezhengwei
Rank: 2
来 自:东华大学
等 级:论坛游民
帖 子:33
专家分:13
注 册:2008-12-16
收藏
得分:0 
#include<stdio.h>   
#include<math.h>   
int sushu(int i)
{
    for(int j=2;i<=sqrt(i);j++)   
    {
         if(i%j==0)  
             return 0;  
         if(j>sqrt(i))   
             return 1;  
    }  
    return 0;
}
void main()   
{   
    long int i;   
    printf("please input the number i:\n");
    scanf("%ld",&i);
    printf("%d",sushu(i));  
}  
2009-10-01 09:41
快速回复:判别素数
数据加载中...
 
   



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

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