返回列表 回复 发帖

VC++从入门到实践 习题求助

麻烦老师把习题2.13中第5题(筛选100以内素数)的源代码发上来。
同时这是我写的,但却把100以内的整数都输出来了,请老师看一下。

#include"iostream.h"
void main()
{
        int a,k,b;
        a=1,a<101;
print:k!=a,k!=1,b!=a,b!=1;
    switch(a/(k*b))
          {
                  case 1:
                          {
                          a=a+1;
                  if(a>100)
                                  cout<<"over"<<endl;
              else
                              goto print;
                          }
                  default:
                          {
                          cout<<a<<endl;
                  a=a+1;
                      if(a>100)
                                  cout<<"over"<<endl;
                      else
                              goto print;
                          }
          }
}
我尽然没有看明白你的代码。能说一下你的思路吗?

一般判断素数的方式为:假设数字为a,用从2到a-1的数字分别去除以a。只要有一次余数为0,则说明不是素数。
哦,原来用这种方法
我的思路是想假设数字为a,如果存在k*b=a,且k不等于1,k不等于a,则a就不是素数了。
但是我不知道怎样让计算机去寻找是否存在这样的k和b,因为k,b的值一开始已经被随机选定。
实际你的思路也是可以的。只是费点力气。实际也是两个循环。
假设数字为a,让k和b嵌套循环。
k从2循环到a-1
    b从2循环到a-1
           如果k*b=a,则a不是素数。
返回列表