当前位置: 代码迷 >> C语言 >> 请各位帮个忙好吗?
  详细解决方案

请各位帮个忙好吗?

热度:72   发布时间:2005-02-19 23:39:00.0
请各位帮个忙好吗?
我刚开始学C语言,有个问题想请教一下,拜托了.....谢谢!
题目是:输出3到100的素数及其个数。
我编的是:(但老是得不到想要的答案)
main()
{
int n,i,s=0;
for(n=3;n<=100;n=n+1)
   {for(i=2;i<n;i=i+1)
     if(n%i==0)break;
     if(i<n) printf();
     else s=s+1;printf("%d ",n);}
printf("\ntotal=%d",s);
getch();
}                  
----------------解决方案--------------------------------------------------------
// 别哭, 别哭!!!
#include <stdio.h>

int main()
{
    int n,i,s=0;
    for(n=3;n<=100;n=n+1)
    {
        for(i=2;i<n;i++)
        {
            if(n%i==0)
                break;
        }
        if(i==n)
        {   
            s++;
            printf("%d ",n);
        }
    }
    printf("\ntotal=%d",s);
    getchar();
    return 0;
}
----------------解决方案--------------------------------------------------------
555.....太感谢了......还是书写习惯不好啊.....大括号多了层次分不清了.....
----------------解决方案--------------------------------------------------------
程序的关键还是简洁的比较好!   
第二个 FOR  语句不必要到 N 因为没必要运算到那个程度!
可用这样
flot a;   \*多定义一个A*\
for(n=3;n<=100;n=n+1)
    {  a=sqrt(n);
        for(i=2;i<=a;i++)
        {
            if(n%i==0)
   ..........
后面的就不用改了啊
我也没试!呵呵~~~~~~
不过理论上是比较这么多次就可以了!
      
----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include<math.h>
main()
{
    int n,i,s=0;
    for(n=3;n<=100;n++)
    {
for(i=2;i<=sqrt(n);i++)
            if(n%i==0)break;
            if(i>sqrt(n))
        {
            s++;
     printf("%d\t",n);
        }
    }
    printf("\ntotal=%d",s);
}
测试过了
没有问题的
----------------解决方案--------------------------------------------------------
  相关解决方案