我写了这个程序来检查质数是否存在,但它似乎不起作用。我在这方面是个新手,但我认为检查一个数字是否是质数,如果去掉最后一个数字,你仍然可以得到一个质数。有谁可以帮我?
#include <stdio.h>
#include <math.h>
int main(int argc, char * argv[]){
int n, b;
int power;
int temp;
int prime=1;
int i,j;
do{
printf("insert positive number:\n");
scanf("%d", &n);
}while(n<=0);
power=1;
while(n>10){
temp=n/10;
power++;
}
for(j=power;j>=0;j--){
for(i=2;i<n/2;i++)
{
if(n%i==0){
prime=0;
}
}
n=n-(n/pow(10,pot));
}
printf("%d", prime);
return 0;
}发布于 2020-02-10 19:55:24
您的主循环应该与以下内容类似:
while (n > 10) {
n = n / 10;
if (!check_prime(n)) {
nrt_prime_flag = 1;
break;
}
}其中check_prime()应检查当前n是否为质数,即,如果不是质数,则返回0。
https://stackoverflow.com/questions/60148210
复制相似问题