- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
欧拉计划 - 3 --- 问题
我是编程艺术的初学者,我开始解决 Project Euler 问题。
我尝试用 C 语言解决第三个问题,但我不明白为什么它不起作用。
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int prime = 0;
long long number, factor, primeFactor = 0, i;
printf("\n\nNumber :");
scanf("%lld", &number);
factor = number;
while (primeFactor == 0) {
factor --;
if (number % factor == 0) {
for (i = 2; i < factor; i++) {
if (factor % i == 0) {
prime = 0;
}
}
if (prime) {
primeFactor = factor;
}
prime = 0;
}
}
if (primeFactor == 0) {
printf("\nIt has no prime factors.\n\n");
}
else printf("\n%lld\n", primeFactor);
return 0;
}
那么,有人可以向我解释一下为什么它不起作用吗?
谢谢! :)
最佳答案
你的内循环逻辑错误,正如BLUEPIXY暗示的那样,你需要做相反的事情:
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int prime = 0;
long long number, factor, primeFactor = 0, i;
printf("\n\nNumber :");
scanf("%lld", &number);
factor = number;
while (primeFactor == 0) {
factor--;
printf("%lld %lld\n",number,factor);
if (number % factor == 0) {
for (i = 2; i < factor; i++) {
if (factor % i == 0) {
prime = 1;
}
}
if (!prime) {
primeFactor = factor;
}
prime = 0;
}
}
if (primeFactor == 0) {
printf("\nIt has no prime factors.\n\n");
}
else printf("\n%lld\n", primeFactor);
return 0;
}
另外:1
不是质数,您也需要检查这一点。输入本身也不会被检查(此处必须大于 1)。
请学习如何使用调试器。不,实际上,了解如何使用您所学语言的调试器与学习语言本身一样重要。
关于c - 欧拉计划,#3 好奇心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38163839/
当我调用这个 promise 时,输出与函数调用的顺序不匹配。 .then出现在 .catch 之前, 即使 promise 与 .then之后被调用。这是什么原因? const verifier =
在 MIPS 程序集中清除寄存器 (=0) 的最快方法是什么? 一些例子: xor $t0, $t0, $t0 and $t0, $t0, $0 move $t0, $0 li
欧拉计划 - 3 --- 问题 我是编程艺术的初学者,我开始解决 Project Euler 问题。 我尝试用 C 语言解决第三个问题,但我不明白为什么它不起作用。 #include
我有一个相当简单但庞大的系统设置。它将数据存储在 void* 数组中,因为它存储的数据可能在 float 或 double 之间变化,具体取决于需要多少精度。 只是执行 delete [] data
谁能解释一下 mysqli multi_query() 的用途是什么?我不明白一个简单的 MySQLi 查询是否支持多语句,或者我是否被迫使用 multi_query() 来执行这样的查询: S
我有两个问题。其中一个对我有意义,另一个对我没有意义。第一个: SELECT gender AS 'Gender', count(*) AS '#' FROM registrations
我的一位同事正在使用内置的 max函数(在 Python 2.7 上),他发现了一个奇怪的行为。 错误地,他没有使用关键字参数 key(如 key=lambda n: n)对作为参数传递的列表进行预排
我有两个问题。其中一个对我有意义,另一个对我没有意义。第一个: SELECT gender AS 'Gender', count(*) AS '#' FROM registrations
我是 python 新手,正在为我的工作职能学习它。我正在遵循一个非常基本的初学者教程,其中大部分看起来非常熟悉并且与我使用的其他语言相似。但是......当我做非常简单的事情时 print('hel
一些编码实验(在尝试找到编码问题的较短答案时进行的)导致了一些有趣的惊喜: seq 2 | while head -n 1 ; do : ; done 输出(点击 Control-C 否则它将永远浪费
我目前正在进行一些最后的优化,主要是为了娱乐和学习,并发现了一些给我留下几个问题的东西。 首先是问题: 当我通过使用 DynamicMethod 在内存中构建方法时,并使用调试器,在反汇编 View
我想知道为什么分别相当于乘法和除法的移位运算符(>)的优先级低于加法运算符,例如“+”。 换句话说: int a = 1 + 2 * 8; //yields 17 鉴于: int a = 1 + 2
我一直在研究一些 .NET 功能(即管道、内存和数组池)以实现高速文件读取/解析。在使用 Array.Copy、Buffer.BlockCopy 和 ReadOnlySequence.CopyTo 时
这个问题更多是出于好奇而不是真正的问题。考虑以下代码(C# 4.0,如果重要的话): class Program { static Point myPoint = new Point(3, 5);
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: how to sum a large number of float number? 我有一个矩阵“x”,它
有人可以解释为什么这些在 Python 2.7.4 中输出不同的东西吗?他们在 python 3.3.1 中输出相同的东西。我只是想知道这是否是 2.7 中已在 3 中修复的错误,或者是否由于语言的某
我是一名优秀的程序员,十分优秀!