当前位置:编程学习 > C/C++ >>

素数的输出(扩展)

内容:输出m和n之间的素数

目的:掌握素数的判断及不同情况的输出

程序代码:

[cpp]
/*    
* 程序的版权和版本声明部分:    
* Copyright (c) 2013, 烟台大学计算机学院    
* All rights reserved.    
* 文件名称:test.cpp    
* 作    者:匡效国    
* 完成日期:2013 年 4 月 12 日    
* 版 本 号:v1.0    
*   
* 对任务及求解方法的描述部分:    
* 输入描述: 输入数据包含两个整数m,n(100<=m<=n<=1000)。
* 问题描述:输入两个整数m,n(100<=m<=n<=1000),按每行5个从小到大输出m到n之间(包含m,n)的所有素数。
*           注意:如果一行有五个数,那么最后一个数后面没有空格。最后一行不足五个数则不换行,
*           其后也无空格          
* 程序输出:见下图    
* 问题分析:略   
* 算法设计:略    
*/       
#include <iostream>  
#include <cmath>  
using namespace std; 
int main() 

    int m,n,i,j,k,t=0; 
    bool prime; 
    cin>>m>>n; 
    for(i=m;i<=n;i++)//此处为素数的判断方法  
    { 
        k=sqrt(i); 
        prime=true; 
        for(j=2;j<=k;j++) 
        { 
            if(i%j==0) 
            { 
                prime=false; 
                break; 
            } 
        } 
        if(prime)//若prime为真时,由输出描述得,需分三种情况输出  
        { 
            t+=1; 
            if(t-1==0)//此为每一行的第一个数  
                cout<<i; 
            else if(t%5==0)//此处为每一行的第五个数  
            { 
                cout<<" "<<i; 
                cout<<endl; 
                t=0; 
            } 
            else//此处为每一行的中间数或最后一行的最后一个数  
                cout<<" "<<i; 
        } 
    } 
    return 0; 

/*   
* 程序的版权和版本声明部分:   
* Copyright (c) 2013, 烟台大学计算机学院   
* All rights reserved.   
* 文件名称:test.cpp   
* 作    者:匡效国   
* 完成日期:2013 年 4 月 12 日   
* 版 本 号:v1.0   
*  
* 对任务及求解方法的描述部分:   
* 输入描述: 输入数据包含两个整数m,n(100<=m<=n<=1000)。
* 问题描述:输入两个整数m,n(100<=m<=n<=1000),按每行5个从小到大输出m到n之间(包含m,n)的所有素数。
*   注意:如果一行有五个数,那么最后一个数后面没有空格。最后一行不足五个数则不换行,
*   其后也无空格         
* 程序输出:见下图   
* 问题分析:略  
* 算法设计:略   
*/     
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
 int m,n,i,j,k,t=0;
 bool prime;
 cin>>m>>n;
 for(i=m;i<=n;i++)//此处为素数的判断方法
 {
  k=sqrt(i);
  prime=true;
  for(j=2;j<=k;j++)
  {
   if(i%j==0)
   {
    prime=false;
    break;
   }
  }
  if(prime)//若prime为真时,由输出描述得,需分三种情况输出
  {
   t+=1;
   if(t-1==0)//此为每一行的第一个数
    cout<<i;
   else if(t%5==0)//此处为每一行的第五个数
   {
    cout<<" "<<i;
    cout<<endl;
    t=0;
   }
   else//此处为每一行的中间数或最后一行的最后一个数
    cout<<" "<<i;
  }
 }
 return 0;
}运行结果:

 \
 


 

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,