我已经在这个主题上仔细阅读了很多代码,但是大多数代码都生成了一直到输入数字为止的数字.但是,我需要的代码只检查给定的输入数是否为素数.
这是我能够写的,但它不起作用:
void primenumber(int number)
{
if(number%2!=0)
cout<<"Number is prime:"<<endl;
else
cout<<"number is NOt prime"<<endl;
}
Run Code Online (Sandbox Code Playgroud)
如果有人能就如何正确地开展这项工作给我建议,我将不胜感激.
我修改它来检查for循环中的所有数字.
void primenumber(int number)
{
for(int i=1; i<number; i++)
{
if(number%i!=0)
cout<<"Number is prime:"<<endl;
else
cout<<"number is NOt prime"<<endl;
}
}
Run Code Online (Sandbox Code Playgroud) 问题是:"写一个函数来找出一个数字是一个素数还是一个完整的数字."
到目前为止,我已经完成了最完美的部分,这就是我所拥有的:
#include <iostream>
using namespace std;
bool perfectNumber(int);
int main()
{
int number;
cout<<"Please enter number:\n";
cin>>number;
bool perfectNumber(number);
return 0;
}
bool perfectNumber(int number)
{
int i;
int sum=0;
for(i=1;i<=number/2;i++)
{
if(number%i==0)
{
sum+=i;
}
}
if (sum==number)
return i;
else
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是,这段代码似乎有错误.我查看了这本书,但没有谈论这个话题.我想获得有关如何修复此代码的建议.
谢谢!