请C++高手帮忙看一下哪里错了~~很着急

来源:百度知道 编辑:UC知道 时间:2024/05/11 02:14:17
输入一个数2-1000如果是素数就输出这个数是素数如果不是素数就输出这个数可以被哪些数整除~小弟刚开始学觉得很难。。。怎么都觉得就应该这样。。。。谢谢各位了
#include <iostream>
using namespace std;

int number(int);
int prime (int);

int main()
{
int i;
int n;
cin>>n;
if(prime(n))
cout<<"the number "<<n<<" is prime";
else if (number(n))
cout<<"the number"<<" "<<n<<" is divisible by";

cout<<" "<< number(n);

return 0;
}

int prime(int n)
{
int flag=1,i;
for(i=2;1<n/2 && flag==1;i++)
if(n%i==0)
flag=0;
return (flag);
}

int number(int i)
{
int n;
for(i = 2; i< n; i++)
{
if (( n%i == 0 ))

cout<<", "<<i;
return i;

}
}
PS~要用function解决~

给你个1-100的素数简单程序,仅供参考
#include <iostream.h>
#include <iomanip.h>
void main()
{
int x,y;
int k=0;
for(x=1;x<=100;x++)
{
for(y=2;y<=x-1;y++)
{
if(x%y==0) break;
}
if(x==y)
{
k++;
cout<<setw(5)<<x;
if(k%5==0)cout<<endl;
}
}

}

int number(int i)
{
int n;
for(i = 2; i< n; i++)
{
if (( n%i == 0 ))

cout<<", "<<i;
return i;

}
你这个函数干什么的?你传入一个参数i,但是没有用它,只是刚开始就把i的值改变了,然后又返回一个值n,然而你的这个n又没有初始化,你到底想干什么啊,兄弟。
如果不是素数
只要这样
if(int i=2;i<n/2;i++)
if(n%i==0)cout<<i<<","
cout <<endl;
这就可以了

大哥
你的程序这样该就可以了
#include <iostream>
using namespace std;
void number(int);
int prime (int);
int main()
{
int n;
cin>>n;
if(prim