当前位置: 代码迷 >> C语言 >> 求助:超级素数的解法问题
  详细解决方案

求助:超级素数的解法问题

热度:389   发布时间:2008-06-28 16:57:41.0
求助:超级素数的解法问题
//求[100,9999]间的超级素数
#include "stdafx.h"
#include "stdio.h"
#include "math.h"

void main()
{
    int i,j,k;
    int flag;
    int ss(int);
    for(i=100;i<=9999;i++)
    {
        flag=0;
        for(j=2;j<sqrt(i);j++)
        {
            if(i%j==0)
            {
                flag=1;
                break;
            }
        }
        if(flag==0)
        {
            
            i=i/10;        
            k=ss(i);
        }

        
    }
}

int ss(int a)
{
    int b,m;
    int flag1;
    flag1=0;
    for(b=2;b<sqrt(a);b++)
    {
        if(a%b==0)
        {
            flag1=1;
            break;
        }
    if(flag1==0)
    {
        a=a/10;
        if(a>0&&a<10)
        {
            printf("%d为超级素数\n",a);break;
        }
        else
        {
            m=ss(int a);break;
        }
        
    }
    }
        
    
}

错误是这样的:
Compiling...
ccc.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\ccc\ccc.cpp(53) : error C2144: syntax error : missing ')' before type 'int'
C:\Program Files\Microsoft Visual Studio\MyProjects\ccc\ccc.cpp(53) : error C2660: 'ss' : function does not take 0 parameters
C:\Program Files\Microsoft Visual Studio\MyProjects\ccc\ccc.cpp(53) : error C2059: syntax error : ')'
Error executing cl.exe.

ccc.exe - 3 error(s), 0 warning(s)

请问错在哪里了??
搜索更多相关的解决方案: 素数  int  解法  flag  

----------------解决方案--------------------------------------------------------
没人知道吗?
----------------解决方案--------------------------------------------------------

else
        {
            m=ss(int a);break;
        }
中的 m=ss(int a);break;改为 m=ss(a);break;
再加上返回值return可解决错误,但好像程序还是有问题的~~
----------------解决方案--------------------------------------------------------
看不懂你的问题
----------------解决方案--------------------------------------------------------
用TC打不开头文件,就做到了这个程度
#include "stdafx.h"
#include "stdio.h"
#include "math.h"
void main()
{int i,j;
int flag;
int ss(int);
for(i=100;i<=9999;i++)
{flag=0;for(j=2;j<sqrt(i);j++)
{if(i%j==0)
{flag=1;break;}
}}
if(flag==0)
{i=i/10;
ss(i);}}
int ss(int a)
{int b;
int flag1;
flag1=0;
for(b=2;b<sqrt(a);b++)
{if(a%b==0)
{flag1=1;break;}
if(flag1==0)
{a=a/10;
if(a>0&&a<10)
{printf("%d为超级素数\n",a);
break;}
else
{
ss(a);break;}
       }
    }
}
----------------解决方案--------------------------------------------------------
  相关解决方案