暴力方法
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int b;
int a;
cin>>a;
///暴力方法证明失败就是找除1和其自身的值之外 有没有有一个数满足不符合质数的定义的(就是有一个数能使得他被整除)
while(a--) {
int flag=0;
cin >> b;
for (int i = b - 1; i > 1; i--) {
if (b % i == 0) {
flag = 1;//用flag打标记然后最后将标机判断的方法是更好的,以免出现多次输出相同值的情况
//cout << b << " is not prime" << endl;
break;//一旦找到一个就直接break掉 就不在空号时间在上面;
}
if(flag==1)cout<<b<<" is not prime"<<endl;
else cout<<b<<" is prime"<<endl;
}
return 0;
}
对于这种问题,我猜测可能是因为都是从大数开始除的,所以我们就让for循环从小数开始找
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int b;
int a;
cin>>a;
while(a--) {
int flag=0;
cin >> b;
for (int i = 2; i <b-1; i++) {//从小数开始计算就很快
if (b % i == 0) {
flag = 1;//用flag打标记然后最后将标机判断的方法是更好的,以免出现多次输出相同值的情况
//cout << b << " is not prime" << endl;
break;
}
}
if(flag==1)cout<<b<<" is not prime"<<endl;
else cout<<b<<" is prime"<<endl;
}
return 0;
}
对于这样的情况就没有问题了
就可以解决100个大数的情况了