我想知道我可以在调试或发现程序中的错误方面获得一些帮助。目标是获得用户输入,然后显示素数,从输入到零,从最大素数到最低素数。
问题是,输出包括用户输入,用户输入本身可能是质数,也可能不是质数,并且多次重复质数:(另外,我想知道为什么不包括2?
我的代码:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int prime, division, input;
cout << "Please enter a number you wish to count down prime numbers from." << endl;
cin >> input;
for (prime = input ; prime >=2 ; prime-- )
{
for (division = 2 ; division < prime ; division++ )
{
if (prime % division == 0)
{
break;
}
else
{
cout << prime << " ";
}
}
}
return 0;
}我的输出:
请输入您希望从质数开始倒数的数字。15
15 13 13 13 11 11 11 9 7 7 7 5 5 5 3
感谢那些帮助我们的人!
发布于 2011-10-27 09:58:58
试试这段代码
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int prime, division, input;
cout << "Please enter a number you wish to count down prime numbers from." << endl;
cin >> input;
for (prime = input ; prime >=2 ; prime--)
{
boolean isDivisible = false;
for (division = 2 ; division < prime ; division ++)
{
if (prime % division == 0)
{
isDivisible = true;
}
}
if (isDivisible == false)
{
cout << prime << " ";
}
}
return 0;
}发布于 2012-10-28 19:17:30
这是一个程序,它告诉我们输入的数是质数,还是not.Any数完全可以被一个总是小于它的数整除。对于质数,它们完全可以被1及其本身整除;所以我使用了一个计数器变量,它计算一个数字被一个或更小的一个数字完全整除的次数。素数的计数将始终为2,其他数的计数将大于2。计数将是1比1...因此,程序如下……
#include<iostream.h>
#include<conio.h>
class prime
{
int a;
public:
void check();
};
void prime::check()
{
cout<<"Insert a number";
cin>>a;
int count=0;
for(int i=a;i>=1;i--)
{
if(a%i==0)
{
count++;
}
}
if(count==1)
{
cout<<"\nOne is neither prime nor composite";
}
if(count>2)
{
cout<<"\nthe number is not prime its composite" ;
}
if(count==2)
{
cout<<"\nthe numner is prime";
}
}
void main()
{
clrscr();
prime k;
k.check();
getch();
}要打印小于作为输入的数字的所有质数,代码如下:
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
class prime
{
int a;
int i;
public:
void display();
};
void prime::display()
{
cout<<"Enter any number to find primes less than it";
cin>>a;
int count=0;
for(int j=a;j>=1;j--)
{
for(int i=1;i<=j;i++)
{
if(j%i==0)
{
count++;
}
}
if(count==2)
{
cout<<"\n"<<j;
}
count=0;
}
}
void main()
{
clrscr();
prime k;
k.display();
getch();
}发布于 2011-10-27 09:48:38
对于第一个问题:
对于9,当division == 2,9 % 2 ==1,所以9是素数时,你应该有一个标志值来表示一个数字是否是质数,并在确定它是质数后打印这个数字。
对于2,编辑:当为prime == 2时,因为division < prime是执行内部循环的条件,所以内部循环退出而不运行。所有的功劳都归马龙!
https://stackoverflow.com/questions/7910868
复制相似问题