內容:輸出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;
}運行結果: