| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1190 人关注过本帖
标题:请教高手 这个程序怎么写
只看楼主 加入收藏
沼泽
Rank: 4
等 级:业余侠客
威 望:8
帖 子:291
专家分:228
注 册:2008-9-15
收藏
得分:0 
#include"stdio.h"
void main()
{
        int i,n;
        scanf("%d",&n);
        printf("3 5 7");
        for(i=5;i<n;i=i+2)
        {
                if(i%3==0||i%5==0||i%7==0)
                continue;
                printf("%d ",i);
        }
}
当n的值大于10时
2008-09-16 14:52
chenliangnbanba
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-9-20
收藏
得分:0 
自己的看法
/*#include "iostream.h"
void main()
{
int i,j,n;
cout<<"请输入整数n"<<endl;
cin>>n;
if (n<3)
cout<<"无满足条件的质数"<<endl;
else
    for(i=2;i<n;i++)               //你的循环太多,不太懂你的意思,其实只要用n除以n以内所有的数即可.
  //而你的程序中第一个循环已经满足取到n内所有的数i,而第二个循环又在i内取所有小于i的数,就重复计算了
  //也就是多余的,所以计算素数是用n对i取模,看是否满足
    {
        for(j=2;j<i;j++)
        
        if (i%j==0)        //所以此句要改为if(n%i==0)
        continue;
        else
            cout<<j<<endl;    //并且所得的数只要输出一次就够了,而你的代码却不能实现
                              //即,当n真为素数时,n以内的数均不能被j整除,这样循环就会被实现n次,
                              //输出n次,显得累赘.所以可以在执行完输出语句后,加上break语句,跳出循环
        
}*/
//以下为我帮你修改的程序。
//--------------------------------------------------------------------------------
#include "iostream.h"
void main()
{
    int i,j,n;
    cout<<"请输入整数n"<<endl;
    cin>>n;
    if (n<3)
    cout<<"无满足条件的质数"<<endl;
else
    for(i=2;i<n;i++)              
    {
        if(n%i==0)      
        continue;
        else
        cout<<n<<endl;
        break;
    }
        
}

初学!
2008-09-20 13:45
chenliangnbanba
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-9-20
收藏
得分:0 
上面的程序有问题,这为修正版
#include "iostream.h"
void main()
{
    int i,j,n;
    cout<<"请输入整数n"<<endl;
    cin>>n;
    if (n<3)
    cout<<"无满足条件的质数"<<endl;
else
    for(i=2;i<n;i++)              
    {
        if(n%i!=0)         //判断n中是否有约数,有则输出n不是素数     
        continue;
        else
        {
        cout<<n<<" 不是素数!"<<endl;
        }
        break;
    }
    if(i==n)                     //当n不是素数时,i则为n,则用if语句输出n是素数
    {
        cout<<n<<"是素数"<<endl;
    }
}

初学!
2008-09-20 22:16
chenlou
Rank: 1
来 自:湖北黄冈武穴
等 级:新手上路
威 望:2
帖 子:49
专家分:0
注 册:2008-9-21
收藏
得分:0 
这个执行效率最高
#include"stdio.h"
#include"math.h"
void main()
{
   int i,j,n,flag;
   scanf("%d",&n);
   for(i=2;i<n;i++)
   {flag=0;
    for(j=2;j<=sqrt(i);j++)
        if(i%j==0)
          {flag=1;break;}
    if(flag==0) printf("%d ",i);
   }
}
2008-09-24 00:54
快速回复:请教高手 这个程序怎么写
数据加载中...
 
   



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

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