| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 952 人关注过本帖
标题:如何判断一个数为素数?
只看楼主 加入收藏
lxdailwj
Rank: 1
来 自:江苏省
等 级:新手上路
帖 子:46
专家分:0
注 册:2008-4-5
收藏
 问题点数:0 回复次数:4 
如何判断一个数为素数?
谢谢
尽可能的多写几种方法
搜索更多相关主题的帖子: 素数 判断 
2008-04-22 21:30
yd4433
Rank: 1
等 级:新手上路
帖 子:404
专家分:0
注 册:2008-3-9
收藏
得分:0 
开方求法  只要看子定义函数中的#include <stdio.h>
#include <math.h>
int spt( int n)
{  int a,i;
    a=(int)sqrt(n); i=0;
        if(n & 1)
        for(i=3; i<=a; i+=2)
        {
            if(n%i== 0) break;
        }
        if (i<=a)
           return 1;
        else
            return 0;
}
int main()
{
    int j=0, number,n,m,temp;
    while(scanf("%d%d",&n,&m)!=EOF)
    {   j=0;
        if(n>m)  
        {
          temp=m;
          m=n;
          n=temp;
        }
        for(number=n;number<=m;number++)
        {    if(spt(number)==0)
               j++;
        }
         printf("%d\n",j);
        
    }
    return 0;
}

普通的方法
 #include<stdio.h>

int spt(int m)
{
     int i=2;
      while(m%i!=0)
          i++;
          if(m==i)
              return 1;
        else
           return 0;
}      
    
void main()
{  int n,b,m;
    printf("请输入一个数");
    scanf("%d",&n);
   if(n>=4&&n%2==0)
    {
        b=n/2;
        for(m=2;m<=b;m++)
        {
             if (spt(m)>0)
               if(spt(n-m)>0)
                  printf("%d\t%d\t\n",m,n-m);
        }             
    }           
            else
        printf("你输入的是错的");
}    

同样是自定义函数中的  ...

------...-.-..-...-----........-------.......----.....------....||- - !
2008-04-22 21:59
日月凡尘
Rank: 1
来 自:四川内江市中区
等 级:新手上路
帖 子:38
专家分:0
注 册:2008-4-22
收藏
得分:0 
又一种解法
#include  <math.h>
void main()
{ int  m, i, k, find = 0; /*标志变量find置为1*/
    printf("Please enter a number (>=2) :");
    scanf("%d",&m);              
    k = sqrt(m);     
    for (i=2; i<=k && !find; i++)
    { if (m % i == 0)   
        find = 1;        
    }
    if (find)   
        printf("No!\n");
    else     
        printf("Yes!\n");  
}
2008-04-22 22:07
日月凡尘
Rank: 1
来 自:四川内江市中区
等 级:新手上路
帖 子:38
专家分:0
注 册:2008-4-22
收藏
得分:0 
#include <stdio.h>
#include <math.h>
void main()
{   int m,i,k;
   do
   {  printf("Input a positive integer  m>2 : ");
      scanf("%d",&m);
   }while(m<=2);          /* 保证输入大于2的整数 */
   k=sqrt(m);/*定义K为整型,则SQRT求出的值也为整数*/
   for(i=2; ;i++)/*这其中加了i<=k也不会影响程序的运行*/
   {
      if(m % i ==0)
         break;                 /* 能被一个数整除时退出 */
   }
   if(i>=k+1)
      printf("%d is a prime.\n",m);           /* 无整除数就是素数 */
   else
      printf("%d is not a prime.\n",m);
}
2008-04-22 22:09
lxdailwj
Rank: 1
来 自:江苏省
等 级:新手上路
帖 子:46
专家分:0
注 册:2008-4-5
收藏
得分:0 
?
这里的fine 真的不太了解啊
2008-04-23 13:04
快速回复:如何判断一个数为素数?
数据加载中...
 
   



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

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