刚编写这一道程序的时候没想很多,打开编译器直接敲代码,一直敲一直敲,想到哪里就敲到哪里,然后一直Debug,后来我才发现我犯了一个很严重的错误,就是知道一道题问什么,却不知道如何设计这道简单的程序题。下面就讨论一下我是如何设计编写这道程序的,希望能给大家带来帮助。
1.虽然这是一道程序题,但你要知道这道程序问的是什么?简单的来说就是求素数,既然求素数,那什么叫素数呢?除了能够被1和它自己本身整除的正整数就是素数(质数)。
2.如何编写代码来判断素数的问题呢?下面我就举个简单例子:
3.知道了素数和大体如何用代码判断素数的方法后,我们就可以知道需要大概定义几个变量(第2步可以看出两个变量),需要几个循环(2个循环,第一个用来循环2~500,相当于第2步的m,多个m就用循环了,第二个循环用来判断是否为素数),接下来要考虑的就是如何在输出5个素数的问题,我们可以考虑在判断出是素数的同时用n用来统计素数,如果n%5==0的时候我们就输出换行
1.虽然这是一道程序题,但你要知道这道程序问的是什么?简单的来说就是求素数,既然求素数,那什么叫素数呢?除了能够被1和它自己本身整除的正整数就是素数(质数)。
2.如何编写代码来判断素数的问题呢?下面我就举个简单例子:
假设判断m是否为素数
#include <iostream>
using namespace std;
void main()
{
int i;
int m;
cin>>m; // 输入m
for(i=2; i<=m; i++)
{
if(i == m) //如果是素数就打印YES
cout<<"YES"<<endl;
if(m % i == 0) //如果判断出合数就终止循环
break;
}
}
3.知道了素数和大体如何用代码判断素数的方法后,我们就可以知道需要大概定义几个变量(第2步可以看出两个变量),需要几个循环(2个循环,第一个用来循环2~500,相当于第2步的m,多个m就用循环了,第二个循环用来判断是否为素数),接下来要考虑的就是如何在输出5个素数的问题,我们可以考虑在判断出是素数的同时用n用来统计素数,如果n%5==0的时候我们就输出换行
4.代码如下:
#include <iostream>
using namespace std;
void main()
{
int i, j, n = 0;
for(i=2; i<=500; i++)
{
for(j=2; j<=i; j++)
{
if(j == i)
{
cout<<i<<'\t';
n++; //用来统计素数
if(n % 5 == 0) //5个素数就输出换行
cout<<endl;
}
if(i % j == 0) //判断出不是素数就终止当前的for循环
break;
}
}
cout<<"n:"<<n<<endl;
}