当前位置: 代码迷 >> C语言 >> 用C语言求2-32767的素数,谁帮下 郁闷中~
  详细解决方案

用C语言求2-32767的素数,谁帮下 郁闷中~

热度:126   发布时间:2007-12-19 15:21:40.0
用C语言求2-32767的素数,谁帮下 郁闷中~
大哥大姐们帮帮我
搜索更多相关的解决方案: 素数  C语言  大姐  

----------------解决方案--------------------------------------------------------
好多啊....

#include<stdio.h>
#include<math.h>
int isprime(int x)    /*判断是否为素数*/
{
    long i,j;
   
    i=sqrt(x);
    for(j=2;j<=i;j++)  
        if(x%j==0){
            return 0;
            break;
        }
    if(j>i)
        return 1;
}
void main()
{
    int i,j=0;
    for(i=2;i<=32767;i++)
    {
        if(isprime(i)){
    printf("%d  ",i);
    j++;
    if(j%10==0)
        printf("\n");}
    }
}
----------------解决方案--------------------------------------------------------
原帖由 [bold][underline]wangchaowushang[/underline][/bold] 于 2007-12-19 15:21 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1154226&ptid=193336][/url]
大哥大姐们帮帮我

能不能再精练点啊,刚才听课老师说的那个很精练 不过运行不了:
#include "stdio.h"
main()
{
   int i=2,n=2;
   for(;n<=32767;n++);
  
       for(;n%i==0;i++);
       if(i==n)
       printf("%d\n",n);
  
}
----------------解决方案--------------------------------------------------------
我无语啊,
思想都是一样的哦
----------------解决方案--------------------------------------------------------
思路一样
----------------解决方案--------------------------------------------------------
#include "stdio.h"
main()
{
   int i=2,n=2;
   for(;n<=32767;n++);
  
       for(;n%i==0;i++);
       if(i==n)
       printf("%d\n",n);
  
}
这个运行不了啊 为什么 是个死循环 
----------------解决方案--------------------------------------------------------
首先,你的FOR循环后多两个分号
----------------解决方案--------------------------------------------------------
#include "stdio.h"
main()
{
   int i,n;
   for(n=2;n<=32767;n++)
   {
    for(i=2;i!=n;i++)
        if (n%i==0) break;
    if(n==i)
        printf("%d ",n);
   }
  
}
----------------解决方案--------------------------------------------------------
我下课了
----------------解决方案--------------------------------------------------------
这个怎么样?
程序代码:
#include<stdio.h>
#include<math.h>

int main() {
    int i,j,m,n=0;
    for (i=2;i<=32767;i++) {
        for (j=2,m=sqrt((float)i);j<=m && i%j;j++);
        if (j>m)printf("%5d%c",i,(++n)%12?' ':'\n');
    }
    getchar();
}

----------------解决方案--------------------------------------------------------