C 素数之和
我想计算101和203之间的偶数素数之和。但是我的代码的输出是错误的,输出是52。 有人能帮我得到正确的输出吗?在我的代码中,我假设偶数肯定不是素数,这就是我逃避它们的原因。我想用素数函数来求解它。我该怎么办?多谢各位C 素数之和,c,C,我想计算101和203之间的偶数素数之和。但是我的代码的输出是错误的,输出是52。 有人能帮我得到正确的输出吗?在我的代码中,我假设偶数肯定不是素数,这就是我逃避它们的原因。我想用素数函数来求解它。我该怎么办?多谢各位 #include <stdio.h> int prime(int n) { int i=2; int n2; n2 = n/2; while (1<=n2) { if (n%i == 0) {
#include <stdio.h>
int prime(int n)
{
int i=2;
int n2;
n2 = n/2;
while (1<=n2) {
if (n%i == 0) {
return 0;
} else {
return 1;
}
i++;
}
}
int main()
{
int sum=0;
for (int i=101; i<=203; i+=2) {
if (prime(i)==1) {
}
sum+=1;
}
printf("%d \n",sum);
return 0;
}
#包括
整数素数(整数n)
{
int i=2;
int n2;
n2=n/2;
而(1首先:在prime方法中不需要'i++;',因为这是无法访问的代码
第二:尝试此函数检查数字是否为素数:
#include <stdio.h>
int prime(int n)
{
for (int i = 2; i < n; i++) {
if (n % i == 0 && i != n) return 0;
}
return 1;
}
int main()
{
int sum=0;
for (int i=101; i<=203; i+=2) {
if (prime(i)==1){
sum+=i;
}
}
printf("%d \n",sum);
}
#包括
整数素数(整数n)
{
for(int i=2;i 对于(inti=101;i来说,没有偶数这样的东西……你总是得到0
但要真正回答你的问题
你真的不需要在你的第一个函数中加入i++了
for (int i=101; i<=203; i++)
{
i++
if (prime(i)==1)
{
sum+=i;
}
}
for(inti=101;i您的代码中有几个问题
在for
循环中:
for (int i=101; i<=203; i+=2) {
if (prime(i)==1){
}sum+=1;
函数prime()
应该仅在while
循环检查n%i==0
的所有i
值和i
的任何值时返回1
。因此,您需要将返回1
移出while
循环
此外,在while
循环的prime()
中,这是不正确的:
while (1<=n2) {
while(1即使是介于101和203之间的素数???你打算计数或求和吗?sum+=i
如果i
是素数…所以我认为结果应该是3167有一个是偶数。一个可能是偶数,两个。据我所知,两个不在他们寻找的范围内。所以在answe中说R
while (1<=n2) {
while (i<=n2) {
#include <stdio.h>
int prime(int n)
{
int i=2;
int n2;
n2 = n/2;
while (i<=n2) {
if (n%i == 0) {
return 0;
}
i++;
}
return 1;
}
int main()
{
int sum=0;
for (int i=101; i<=203; i+=2) {
if (prime(i)==1){
sum+=i;
}
}
printf("%d \n",sum);
return 0;
}